Cod sursa(job #7477)

Utilizator Adriana_SAdriana Sperlea Adriana_S Data 21 ianuarie 2007 16:07:38
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>

const int N_MAX = 1024;

struct intr {
	int is, t, ls;
} v[N_MAX];

int a[N_MAX][N_MAX], ap[N_MAX];

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

	int N, M, C, T, nrC, i, j;
	scanf("%d %d\n", &N, &M);

	for (i = 1; i <= N; i ++) {
		scanf("%d ", &ap[i]);
	}

	int x;
	for (i = 1; i <= M; i ++) {
		scanf("%d %d %d\n", &C, &T, &nrC);
	   	v[C + 1].is = 1;
		v[C + 1].t = T;
		v[C + 1].ls = nrC;
		for (j = 1; j <= nrC; j ++) {
			scanf("%d ", &x);
			a[C + 1][x + 1] = 1;
		}
	}

	int tf = 0;
	for (i = 1; i <= N; i ++) {
		if (!ap[i]) {
			//printf("%d %d\n", v[i].t, i);
			tf += v[i].t;
			for (j = 1; j <= N; j ++) {
				if (a[i][j]) {
					//printf("%d ", j);
					ap[j] ^= 1;
				}
				//printf("\n");
			}
		}
	}

	printf("%d\n", tf);

	return 0;
}