Cod sursa(job #20336)

Utilizator webspiderDumitru Bogdan webspider Data 21 februarie 2007 09:38:09
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <iostream>
#include <vector>

using namespace std;

int ap[1001];
vector<int> af[1001];
int cost[1001];

int n,m;
int k;
int costt, aux;

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

	scanf("%d %d\n", &n, &m);

	for ( i = 0; i < n; i++ )
		scanf("%d\n", &ap[i]);

	for ( i = 1; i <= m; i++ )
	{
		scanf("%d ", &nodc);
		scanf("%d %d ", &cost[nodc], &k );
		for ( j = 1; j <= k; j++ )
		{
			scanf("%d ", &aux );
			af[nodc].push_back( aux );
		}
	}

	for ( i = 0; i < n; i++ )
	{
		if ( ap[i] == 0 )
		{
			for ( j = 0; j < af[i].size(); j++ )
				ap[ af[i][j] ]^=1;
			costt += cost[i];
		}
	}
	printf("%d\n", costt);

	fclose(stdin);
	fclose(stdout);

	return 0;
}