Cod sursa(job #28690)

Utilizator judy_kCristina Petrovici judy_k Data 8 martie 2007 10:31:21
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.89 kb
#include <stdio.h>
#include <set>

int k1,n,m,k,i,j,x,a1[2000],a2[2000],b[2000],c[2000],l,l1;

int main()
{
	freopen("balanta.in","r",stdin);
    freopen("balanta.out","w",stdout);
    scanf("%d %d",&n,&m);

    for (i=1;i<=n;++i)
    {
    	a1[i]=1;
        a2[i]=1;
    }
    
    for (i=1;i<=m;++i)
    {
        scanf("%d ",&k);
        for (j=1;j<=k;++j)
        	scanf("%d ",&b[j]);
        for (j=1;j<=k;++j)
        	scanf("%d ",&c[j]);
        scanf("%d",&x);
        if (x==0)
        {
         	for (j=1;j<=k;++j)
            {
                a1[b[j]]=0;
                a2[c[j]]=0;
            }
        }
        else
        if (x==1)
        {
         	for (j=1;j<=k;++j)
            {
                a1[b[j]]+=1;
                a2[c[j]]+=1;
            }
            for (j=1;j<=n;++j)
            {
             	if (a1[j]!=2) a1[j]=0;
                if (a2[j]!=2) a2[j]=0;
            }
            for (j=1;j<=k;++j)
            {
                if (a1[b[j]]==2) a1[b[j]]=1;
                if (a2[c[j]]==2) a2[c[j]]=1;
            }
        }
        else
        {
         	for (j=1;j<=k;++j)
            {
                a1[c[j]]+=1;
                a2[b[j]]+=1;
            }
            for (j=1;j<=n;++j)
            {
             	if (a1[j]!=2) a1[j]=0;
                if (a2[j]!=2) a2[j]=0;
            }
            for (j=1;j<=k;++j)
            {
                if (a1[c[j]]==2) a1[c[j]]=1;
                if (a2[b[j]]==2) a2[b[j]]=1;
            }
        }
    }

    k=0;l=0;
    for (i=1;i<=n;++i)
    {
     	if (a1[i]>0)
        {
        	k++;
            k1=i;
        }
        if (a2[i]>0)
        {
        	l++;
            l1=i;
        }
    }

    if (k==1 && l==0) printf("%d\n",k1);
    else
    if (k==0 && l==1) printf("%d\n",l1);
    else
    printf("0\n");

    return 0;
}