Cod sursa(job #26473)

Utilizator MariusMarius Stroe Marius Data 5 martie 2007 17:30:52
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <cstdio>
using namespace std;

const char iname[] = "aprindere.in";
const char oname[] = "aprindere.out";

#define MAX_N  1000
#define MAX_NR 100

int n;

int m;

int stare[MAX_N];

int tc[MAX_N], nr[MAX_N];

int indici[MAX_N][MAX_NR];


void read_in(void) {
	freopen(iname, "r", stdin);
	int i;
	int j;
	int k;
	scanf("%d %d", & n, & m);
	for (i = 0; i < n; ++ i)
		scanf("%d", stare + i);
	for (i = 0; i < m; ++ i) {
		scanf("%d", & j);
		scanf("%d %d", tc + j, nr + j);
		for (k = 0; k < nr[j]; ++ k)
			scanf("%d", indici[j] + k);
	}
}

int main(void) {
	read_in();
	int Res = 0;
	int i;
	int j;
	for (i = 0; i < n; ++ i) {
		if (stare[i] == 1)
			continue ;
		for (j = 0; j < nr[i]; ++ j)
			stare[indici[i][j]] ^= 1;
		Res += tc[i];
	}
	freopen(oname, "w", stdout);
	printf("%d\n", Res);
	return 0;
}