Cod sursa(job #8083)

Utilizator ProstuStefan-Alexandru Filip Prostu Data 23 ianuarie 2007 19:55:44
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>

const int NMAX = 1024;

int N, M;
int A[NMAX], T[NMAX], NR[NMAX];
int V[NMAX][NMAX];
int time;

void read() {
	FILE *fin = fopen("aprindere.in", "rt");
	int i, j, c, t, nr;

	fscanf(fin, " %d %d", &N, &M);

	for (i = 0; i < N; ++i)
		fscanf(fin, " %d", A + i);

	for (i = 0; i < M; ++i) {
		fscanf(fin, " %d %d %d", &c, &t, &nr);
		T[c] = t; NR[c] = nr;
		
		for (j = 0; j < nr; ++j)
			fscanf(fin, " %d", &V[c][j]);
	}

	fclose(fin);
}

void count() {
	int i, j;

	for (i = 0; i < N; ++i)
		if (A[i] == 0) {
			time += T[i];

			for (j = 0; j < NR[i]; ++j)
				A[ V[i][j] ] ^= 1;
		}
}

void write() {
	FILE *fout = fopen("aprindere.out", "wt");

	fprintf(fout, "%d\n", time);

	fclose(fout);
}

int main() {
	
	read();

	count();

	write();

	return 0;
}