Pagini recente » Cod sursa (job #2895661) | Cod sursa (job #512835) | Cod sursa (job #2773658) | Cod sursa (job #524521) | Cod sursa (job #267485)
Cod sursa(job #267485)
#include <cstdio>
#include <vector>
using namespace std;
typedef struct {
int t, n;
vector<int> cs;
} Camera;
int N, M;
bool C[1001];
Camera R[1001];
int main(int argc, char *argv[]) {
int i, j, aux, cc, t;
FILE *fi = fopen("aprindere.in", "r");
fscanf(fi, "%d %d", &N, &M);
for (i = 0; i < N; ++i) {
fscanf(fi, "%d", &aux);
if (aux)
C[i] = true;
}
for (i = 0; i < M; ++i) {
fscanf(fi, "%d", &cc);
fscanf(fi, "%d %d", &R[cc].t, &R[cc].n);
for (j = 0; j < R[cc].n; ++j) {
fscanf(fi, "%d", &aux);
R[cc].cs.push_back(aux);
}
}
fclose(fi);
t = 0;
for (i = 0; i < N; ++i)
if (!C[i]) {
//printf("Flipping %d\n", i);
C[i] = true;
t += R[i].t;
for (vector<int>::iterator jj = R[i].cs.begin(); jj != R[i].cs.end(); ++jj)
C[*jj] = !C[*jj];
}
FILE *fo = fopen("aprindere.out", "w");
fprintf(fo, "%d\n", t);
fclose(fo);
return 0;
}