Cod sursa(job #514466)

Utilizator LgregL Greg Lgreg Data 18 decembrie 2010 19:26:13
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.72 kb
#include<stdio.h>
int N,M,nr,sol,x,mult1[1234],mult2[1234],k,v[1234],l[1234];
int main()
{
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
scanf("%d%d",&N,&M);

 for(int i=1;i<=M;++i)
 {
     scanf("%d",&k);
    for(int j=1;j<=N;++j)
        {
            v[j]=1;
            l[j]=1;
        }
     for(int j=1;j<=k;++j)
     {
     scanf("%d",&x);
     v[x]=0;
     }
     for(int j=1;j<=k;++j)
     {
     scanf("%d",&x);
     l[x]=0;
     }
     scanf("%d",&nr);
/*
      for(int j=1;j<=N;++j)
    {
    printf("%d %d %d\n",v[j],l[j],j);
    }
    printf("\n\n");*/
     if(nr==0)
     for(int j=1;j<=N;++j)
     {
        if(!mult1[j]&&!v[j])
            mult1[j]=1;
        if(!mult1[j]&&!l[j])
            mult1[j]=1;
        if(!mult2[j]&&!l[j])
            mult2[j]=1;
        if(!mult2[j]&&!v[j])
            mult2[j]=1;


    }
    if(nr==1)
    for(int j=1;j<=N;++j)
    {
        if(!mult1[j])
            if(v[j])
                mult1[j]=1;
        if(!mult2[j])
            if(l[j])
                mult2[j]=1;


    }
    if(nr==2)
    for(int j=1;j<=N;++j)
    {
        if(!mult2[j])
            if(v[j])
                mult2[j]=v[j];
        if(!mult1[j])
            if(l[j])
                mult1[j]=l[j];
    }


 }
for(int i=1;i<=N;++i)
    {

        if(mult1[i]==0&&sol)
        {
            printf("0\n");
            return 0;
        }
        if(mult1[i]==0)
            sol=i;
            if(mult2[i]==0&&sol)
        {
            printf("0\n");
            return 0;
        }
        if(mult2[i]==0)
            sol=i;

    }
    if(sol)
        printf("%d\n",sol);
    else
    printf("0\n");
    return 0;
}