Cod sursa(job #610243)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 25 august 2011 23:33:12
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
// !!!!! Killed by signal 11(SIGSEGV). ????
// normal trebuie sa mearga


/*#include<iostream>
#include<fstream>
 int a[1010][1010],v[1010],timp,t[1010];
using namespace std;
int main(void)
{
	 int m,n,c,nr1,i,j;
	fstream f,g;
	f.open("aprindere.in",ios::in);
	g.open("aprindere.out",ios::out);
	f>>n>>m;
	for(i=0;i<n;i++)
		f>>v[i];
	for (i=0;i<m;i++)
	{
		f>>c>>t[c]>>a[c][0];
		for (j=1;j<=a[c][0];j++)
			f>>a[c][j];
	}
	for (i=0;i<n;i++)
	{
		if (!v[i])
		{
			timp=timp+t[i];
			for (j=1;j<=a[i][0];j++)
					v[a[i][j]]=(!v[a[i][j]]);
		}
	}
	g<<timp;
}
*/
#include<fstream>

using namespace std;

const int N=1<<10;

int a[N][N],t[N],x,n,m,nr,v[N];

ifstream in("aprindere.in");
ofstream out("aprindere.out");

void citire()
{
	in>>n>>m;
	for(int i=0;i<n;++i)
		in>>v[i];
	for(int i=0;i<m;++i)
	{
		in>>x;
		in>>t[x]>>a[x][0];
		for(int j=1;j<=a[x][0];++j)
			in>>a[x][j];
	}
}

void work()
{
	for(int i=0;i<n;++i)
		if(!v[i])
		{
			nr+=t[i];
			for(int j=1;j<=a[i][0];++j)
				v[a[i][j]]=(!v[a[i][j]]);
		}
	out<<nr;
}
	

int main()
{
	citire();
	work();
	return 0;
}