Cod sursa(job #25551)

Utilizator VmanDuta Vlad Vman Data 4 martie 2007 12:54:38
Problema Balanta Scor 30
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 10-a Marime 1.26 kb
#include <stdio.h>
#define nmax 1025

int n,m,i,j,nrc,mu[nmax],mg[nmax],t1[nmax],t2[nmax],rez,nr1,nr2,p1,p2;

int main()
{
    freopen("balanta.in","r",stdin);
    scanf("%d %d\n",&n,&m);
    for (i=0;i<m;++i)
        {
        scanf("%d",&nrc);
        for (j=0;j<nrc;++j)
            scanf("%d",&t1[j]);
        for (j=0;j<nrc;++j)
            scanf("%d",&t2[j]);
        scanf("%d\n",&rez);
        if (rez==0)
           {
           for (j=0;j<nrc;++j)
               {
	       mu[t1[j]]=1;
	       mu[t2[j]]=1;
	       mg[t1[j]]=1;
	       mg[t2[j]]=1;
	       }
	   }
	   else if (rez==1)
		{
		 for (j=0;j<nrc;++j)
		     {
		     mu[t1[j]]=1;
		     mg[t2[j]]=1;
		     }
		}
	       else if (rez==2)
		    {
		    for (j=0;j<nrc;++j)
			{
			mu[t2[j]]=1;
			mg[t1[j]]=1;
			}
		    }
	}
fclose(stdin);
//verifica
for (i=1;i<=n;++i)
    {
    nr1+=mu[i];
    nr2+=mg[i];
    if (mu[i]==0) p1=i;
    if (mg[i]==0) p2=i;
    }
nr1=n-nr1;
nr2=n-nr2;
freopen("balanta.out","w",stdout);
if ((nr1>1)&&(nr2>1)) printf("%d",0);
   else if ((nr1==1)&&(nr2==1)&&(p1!=p2)) printf("%d",0);
      else if (nr1==1) printf("%d",p1);
        else if (nr2==1) printf("%d",p2);
             else printf("%d",0);
fclose(stdout);
return 0;
}