Cod sursa(job #7677)

Utilizator gcosminGheorghe Cosmin gcosmin Data 21 ianuarie 2007 21:48:33
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>

#define NMAX 1010
#define MMAX 110

int N, M;

int st[NMAX];

int cost[NMAX];
int nr[NMAX];

int leg[NMAX][MMAX];

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

	scanf("%d %d", &N, &M);

	for (i = 0; i < N; i++) scanf("%d", &st[i]);

	for (i = 1; i <= M; i++) {
		scanf("%d", &q);

		scanf("%d %d", &cost[q], &nr[q]);

		for (j = 1; j <= nr[q]; j++) scanf("%d", &leg[q][j]);
	}

	int rez = 0;
	for (i = 0; i < N; i++) {
		if (st[i]) continue;

		rez += cost[i];

		for (j = 1; j <= nr[i]; j++) st[leg[i][j]] = 1 - st[leg[i][j]];
	}

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

fclose(stdin);
fclose(stdout);
return 0;
}