Cod sursa(job #734543)

Utilizator ion824Ion Ureche ion824 Data 14 aprilie 2012 15:17:45
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.8 kb
#include<cstdio>
#include<cstring>
#define nmax 1026
bool r[nmax],r1[nmax],p[nmax],q[nmax];
int main(void){
    freopen("balanta.in","r",stdin);
    freopen("balanta.out","w",stdout);
    int n,m,nr,x,rez,i;
    scanf("%d%d",&n,&m);
    memset(r,1,sizeof(r)); memset(r1,1,sizeof(r1));
    while(m--){
               scanf("%d",&nr);
               for(i=0;i<nr;++i){ scanf("%d",&x); q[x]=1; }
               for(i=0;i<nr;++i){ scanf("%d",&x); p[x]=1; }              
               scanf("%d",&rez);
               if(rez==0)
                      for(i=1;i<=n;++i){
                                        if(q[i])r[i]=r1[i]=0;
                                        if(p[i])r[i]=r1[i]=0;
                                        q[i]=p[i]=0;
                                        }                                                      
               if(rez==1)
                       for(i=1;i<=n;++i){
                                         r[i]&=q[i]; 
                                         r1[i]&=p[i]; 
                                         p[i]=q[i]=0;
                                         }
                                                                                                                                                                
               if(rez==2)
                      for(i=1;i<=n;++i){
                                         r[i]&=p[i];
                                         r1[i]&=q[i];
                                         p[i]=q[i]=0;
                                         }                                                                       
               }
 for(i=1,nr=0;i<=n;++i)if(r[i]){ rez=i; nr++; }
 for(i=1;i<=n;++i)if(r1[i]){ rez=i; nr++; } 
 if(nr==1)printf("%d",rez); else printf("0");            
 return 0;   
}