Cod sursa(job #94584)

Utilizator lostBlanaru Adina lost Data 23 octombrie 2007 21:15:10
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include<stdio.h>
int viz[1025],b[1025],a[1025];
int main()
{
int i,k,n,x,m;
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
scanf("%d%d",&n,&m);
int j;
for(j=1;j<=m;j++)
   {
   scanf("%d",&k);
   for(i=1;i<=k;i++)
      scanf("%d",&a[i]);
   for(i=1;i<=k;i++)
      scanf("%d",&b[i]);
   scanf("%d",&x);
   if (x==0)
      for(i=1;i<=k;i++)
	  viz[a[i]]=viz[b[i]]=-1;
   else
     if (x==1)
       for(i=1;i<=k;i++)
	  {
	  if(viz[a[i]]==1 || viz[a[i]]==-1)
	       viz[a[i]]=-1;
	    else
	       viz[a[i]]=2;

	  if( viz[b[i]]==2 || viz[b[i]]==-1)
	       viz[b[i]]=-1;
	    else
	       viz[b[i]]=1;
	  }
       else
	  for(i=1;i<=k;i++)
	  {
	  if(viz[b[i]]==1 || viz[b[i]]==-1)
	       viz[b[i]]=-1;
	    else
	       viz[b[i]]=2;
	  if( viz[a[i]]==2 || viz[a[i]]==-1)
	       viz[a[i]]=-1;
	    else
	       viz[a[i]]=1;

	   }

   for(i=1;i<=k+1;i++)
	a[i]=b[i]=0;
   }
int a1,a2;
a1=a2=0;
for(i=1;i<=n;i++)
    if(viz[i]==1)
	   a1++;
    else
    if(viz[i]==2)
	   a2++;

if(a2==1 && a1!=1)
   for(i=1;i<=n;i++)
      if(viz[i]==2)
	 {
	 printf("%d\n",i);
	 return 0;
	 }
if(a2!=1 && a1==1)
    for(i=1;i<=n;i++)
       if(viz[i]==1)
	 {
	 printf("%d\n",i);
	 return 0;
	 }
printf("0\n");
return 0;
}