Cod sursa(job #50770)

Utilizator tvladTataranu Vlad tvlad Data 8 aprilie 2007 19:55:28
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
#include <cstdlib>

const int N = 1000;
const int M = 1000;

int n,m;
int b[M];
int t[M];
int a[M][N];
bool st[N];

int main() {
	freopen("aprindere.in","r",stdin);
	freopen("aprindere.out","w",stdout);

	scanf("%d %d",&n,&m);
	for (int i = 0; i<n; ++i) {
		int aux;
		scanf("%d",&aux);
		st[i] = (aux == 1);
	}
	for (int i = 0; i<m; ++i) {
		int c; scanf("%d",&c);
		scanf("%d %d",&t[c],&b[c]);
		for (int j = 0; j<b[0]; ++j) scanf("%d",&a[c][j]);
	}
	
	int rez = 0;
	for (int i = 0; i<n; ++i) {
		if (!st[i]) {
//			fprintf(stderr,"Becul %d este stins\n rez: %d -> ",i,rez);
			rez += t[i];
//			fprintf(stderr,"%d\n",rez);
			for (int j = 0; j<b[i]; ++j) {
				st[a[i][j]] = !st[a[i][j]];
//				fprintf(stderr," Becul %d se %s\n",a[i][j],(st[a[i][j]]) ? "Aprinde" : "Stinge");
			}
		}
	}
	
	printf("%d\n",rez);
	return 0;
}