Cod sursa(job #36748)

Utilizator raduchilomRadu Chilom raduchilom Data 23 martie 2007 23:42:39
Problema Balanta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
stdlib.h
#include<fstream>
using namespace std;
fstream f,g;
long n,m,i,j,k,adev,c1,c2,fals1,fals2,x[300],pos[300],t,q;
int main(void)
{
f.open("balanta.in",ios::in);
g.open("balanta.out",ios::out);

f>>n>>m;
for(i=1;i<=n;i++)
	x[i]=-1;
for(i=1;i<=m;i++)
	{
	f>>k;
	for(j=1;j<=2*k;j++)
		f>>pos[j];
	f>>adev;
	if(adev==0)
		for(j=1;j<=2*k;j++)
			x[pos[j]]=0;
	if(adev==1)
	    {
		for(j=1;j<=k;j++)
		   if(x[pos[j]]==-1)
			x[pos[j]]=2;
			else if(x[pos[j]]==1)
				x[pos[j]]=0;

		for(j=k+1;j<=2*k;j++)
		  if(x[pos[j]]==-1)
			x[pos[j]]=1;
			else if(x[pos[j]]==2)
				x[pos[j]]=0;

	    }
	if(adev==2)
	    {

		for(j=k+1;j<=2*k;j++)
		   if(x[pos[j]]==-1)
			x[pos[j]]=2;
			else if(x[pos[j]]==1)
				x[pos[j]]=0;

		for(j=1;j<=k;j++)
		  if(x[pos[j]]==-1)
			x[pos[j]]=1;
			else if(x[pos[j]]==2)
				x[pos[j]]=0;
	    }
        if (adev!=0)
           {
                for (j=1;j<=n;j++)
                  {
                  q=1;
                    for (t=1;t<=2*k;t++)
                        if(j==pos[t]) q=0;
                    if(q) x[j]=0;
                  }

           }
	}
c1=0;
c2=0;
for(i=1;i<=n;i++)
	{
	if(x[i]==1)
		{
		c1=c1+1;
		fals1=i;
		}
	if(x[i]==2)
		{
		c2=c2+1;
		fals2=i;
		}
	}
q=1;
if ((c1==1)&&(c2==0))
   {
   g<<fals1;
   q=0;
   }
if ((c2==1)&&(c1==0))
   {
   g<<fals2;
   q=0;
   }
if(q)
     g<<0;

f.close();
g.close();
return 0;
}