Cod sursa(job #196813)

Utilizator katakunaCazacu Alexandru katakuna Data 29 iunie 2008 12:06:06
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include<stdio.h>

int l,r,k,x,A[2000],B[2000],u[2000],g[2000],n,m,i;

int main(){


FILE *f=fopen("balanta.in","r");
fscanf(f,"%d %d",&n,&m);

 for(i=1;i<=n;i++){
 u[i]=1;
 g[i]=1;
 }

int d=1;

  for(l=1;l<=m;l++){
  fscanf(f,"%d",&k);
  //d++;
  
    for(i=1;i<=k;i++){
    fscanf(f,"%d",&x);
    A[x]=1;
    }

    for(i=1;i<=k;i++){
    fscanf(f,"%d",&x);
    B[x]=1;
    }

   fscanf(f,"%d",&r);

   if(r==0){

     for(i=1;i<=n;i++){
       if(A[i]==1){
       u[i]=g[i]=0;
       }

       if(B[i]==1){
       u[i]=g[i]=0;
       }
       
     }

   }


   if(r==1){

     for(i=1;i<=n;i++){
       if(u[i]==1&&A[i]==1);
       else
       u[i]=0;

       if(g[i]==1&&B[i]==1);
       else
       g[i]=0;
     }

   }

   if(r==2){

     for(i=1;i<=n;i++){
       if(g[i]==1&&A[i]==1);
       else
       g[i]=0;

       if(u[i]==1&&B[i]==1);
       else
       u[i]=0;
     }

   }

     for(i=1;i<=n;i++)
     A[i]=B[i]=0;
   
  }

fclose(f);


FILE *gg=fopen("balanta.out","w");
int nr=0,p=0;

  for(i=1;i<=n;i++){

    if(u[i]==1){
    nr++;
    p=i;
    }

    if(nr==2){
    fprintf(gg,"%d\n",0);
    return 0;
    }
  }


  for(i=1;i<=n;i++){

    if(g[i]==1){
    nr++;
    p=i;
    }

    if(nr==2){
    fprintf(gg,"%d\n",0);
    return 0;
    }
  }


fprintf(gg,"%d",p);

fclose(gg);

return 0;
}