Cod sursa(job #29277)

Utilizator anamaria1Ozorchevici Ana Maria anamaria1 Data 8 martie 2007 20:44:11
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream.h>
int h[1025],l[1025],a[513],b[513];
int main()
{ifstream f("balanta.in");
ofstream g("balanta.out");
int n,m,k,val,ch,cl,i,j,ok,c;
f>>n>>m;
ch=cl=n;
for(i=1;i<=m;i++)
 {f>>k;
  for(j=1;j<=k;j++) f>>a[j];
  for(j=1;j<=k;j++) f>>b[j];
  f>>val;
  if(!val)
   {for(j=1;j<=k;j++)
     {if(!h[a[j]]) {h[a[j]]=1;ch--;}
      if(!l[a[j]]) {l[a[j]]=1;cl--;}
      if(!h[b[j]]) {h[b[j]]=1;ch--;}
      if(!l[b[j]]) {l[b[j]]=1;cl--;}
     }
   }
   else if(val==1)
    {for(j=1;j<=n;j++)
      {if(!h[j])
	{ok=1;
	 for(c=1;c<=k;c++)
	  if(j==a[c]) {ok=0;break;}
	 if(ok) {h[j]=1;ch--;}
	}
       if(!l[j])
	{ok=1;
	 for(c=1;c<=k;c++)
	   if(j==b[c]) {ok=0;break;}
	 if(ok) {l[j]=1;cl--;}
	}
      }
    }
    else
     {for(j=1;j<=n;j++)
       {if(!h[j])
	 {ok=1;
	  for(c=1;c<=k;c++)
	    if(j==b[c]) {ok=0;break;}
	  if(ok) {h[j]=1;ch--;}
	 }
	if(!l[j])
	   {ok=1;
	    for(c=1;c<=k;c++)
	      if(j==a[c]) {ok=0;break;}
	    if(ok) {l[j]=1;cl--;}
	   }
       }
     }
 }
f.close();
if((ch==1)&&(cl!=1)) {i=1;while(h[i]) i++;g<<i<<'\n';}
 else if((cl==1)&&(ch!=1)) {i=1;while(l[i]) i++;g<<i<<'\n';}
   else g<<0<<'\n';

g.close();
return 0;
}