Cod sursa(job #773669)

Utilizator misinozzz zzz misino Data 2 august 2012 12:46:16
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
using namespace std;
ifstream f("balanta.in");
ofstream g("balanta.out");
int n,m,nu,ng,i,k,r,g11,u1,g1[1030],u[1030],x[1030],y[1030];
int main()
{f>>n>>m;
for(i=1;i<=n;++i)
	g1[i]=u[i]=1;
for(;m;--m)
{f>>k;
for(i=1;i<=k;++i)
	f>>x[i];
for(i=1;i<=k;++i)
	f>>y[i];
f>>r;
if(r==0)
	for(i=1;i<=k;++i)
		g1[x[i]]=g1[y[i]]=u[x[i]]=u[y[i]]=0;
	else
		if(r==1)
		{for(i=1;i<=k;++i)
		{if(g1[x[i]]==1)
			g1[x[i]]=-1;
		if(u[y[i]]==1)	
			u[y[i]]=-1;
		}
		for(i=1;i<=n;++i)
		{g1[i]=(g1[i]==-1?1:0);
		u[i]=(u[i]==-1?1:0);
		}
		}
		else
			if(r==2)
			{for(i=1;i<=k;++i)
			{if(g1[y[i]]==1)
				g1[y[i]]=-1;
			if(u[x[i]]==1)
				u[x[i]]=-1;
			}
			
			for(i=1;i<=n;++i)
			{g1[i]=(g1[i]==-1?1:0);
			u[i]=(u[i]==-1?1:0);
			}
			}
}
nu=0;
ng=0;
for(i=1;i<=n;++i)
{if(g1[i]==1)
	++ng,g11=i;
if(u[i]==1)
	++nu,u1=i;
}
if(ng==1&&nu==0)
	g<<g11<<'\n';
else
	if(ng==0&&nu==1)
		g<<u1<<'\n';
	else
		g<<0<<'\n';
return 0;
}