Cod sursa(job #9051)

Utilizator mariussMarius Telespan mariuss Data 26 ianuarie 2007 15:30:08
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>
long long int n,m,i,j,s,v[10000],w[10000][10000],k,q[10000][10000],c;
int main()
{
	freopen("aprindere.in","r",stdin);
	freopen("aprindere.out","w",stdout);

	scanf("%lld %lld",&n,&m);

	for(i=1;i<=n;i++)
		scanf("%lld",&v[i]);

	for(i=1;i<=m;i++)
	{
		scanf("%lld %lld %lld",&w[i][1],&w[i][2],&w[i][3]);
		for(j=1;j<=w[i][3];j++)
		{
			scanf("%lld",&q[i][j]);
			q[i][j]++;
		}
	}

	for(i=1;i<=m;i++)
		w[i][1]++;

	/*

	for(i=1;i<=m;i++)
		printf("%d\n",w[i][1]);

	for(i=1;i<=m;i++)
	{
		for(j=1;j<=5;j++)
			printf("%d ",q[i][j]);
		printf("\n");

	}

	*/

	for(i=1;i<=n;i++)
	{
		if(v[i]==0)
		{
			for(j=1;j<=m;j++)
				if(w[j][1]==i)
				{
					for(k=1;k<=w[j][3];k++)
					{
						for(c=1;c<=n;c++)
							if(q[j][k]==c)
							{
								if(v[c]==0)v[c]=1;
								else v[c]=0;
							}

					}

					s+=w[j][2];

					break;
				}
		}
	}

	printf("%lld",s);

	return 0;

}