Pagini recente »
Istoria paginii utilizator/mihaighioca
|
concursul_campionilor_1
|
Istoria paginii runda/simulare_4
|
Clasament simulareoni6_5
|
Cod sursă (job #295225)
Cod sursă (job
#295225)
#include <assert.h>
#include <stdio.h>
#define MAX_N 50000
#define MAX_DEFECTS 10000
typedef struct {
int l, c, val;
} defect;
int line[MAX_N];
defect d[MAX_DEFECTS + 1];
int main(void) {
int n, nd, dpos;
FILE *f = fopen("beculete.in", "r");
assert(fscanf(f, "%d %d", &n, &nd) == 2);
for (int i = 0; i < nd; i++) {
assert(fscanf(f, "%d %d %d", &d[i].l, &d[i].c, &d[i].val) == 3);
d[i].l--;
d[i].c--;
}
fclose(f);
d[nd].l = n + 1;
line[0] = 1;
dpos = 0;
for (int i = 1; i < n; i++) {
line[i] = line[i - 1];
for (int j = i - 1; j; j--) {
line[j] ^= line[j - 1];
}
while (d[dpos].l < i) {
dpos++;
}
while (d[dpos].l == i) {
line[d[dpos].c] = d[dpos].val;
dpos++;
}
}
f = fopen("beculete.out", "w");
for (int i = 0; i < n; i++) {
fprintf(f, "%d ", line[i]);
}
fprintf(f, "\n");
fclose(f);
}