Cod sursa(job #9054)

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

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

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

	for(i=1;i<=m;i++)
	{
		scanf("%d %d %d",&w[i][1],&w[i][2],&w[i][3]);
		for(j=1;j<=w[i][3];j++)
		{
			scanf("%d",&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("%d",s);

	return 0;

}