Cod sursa(job #240878)

Utilizator ConsstantinTabacu Raul Consstantin Data 8 ianuarie 2009 20:53:58
Problema Balanta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.09 kb
#include<stdio.h>
int a[1050],c[1050],i,j,k,l,m,n,ok;
int main(){
FILE *f=fopen("balanta.in","r");
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;i++)a[i]=3;
FILE *g=fopen("balanta.out","w");
for(i=1;i<=m;i++)
        {fscanf(f,"%d",&k);
        for(j=1;j<=2*k;j++)
                fscanf(f,"%d",&c[j]);
        fscanf(f,"%d",&ok);
        if(k==1&&ok!=0)
        {if(ok==1)
                {if(a[c[1]]==2){fprintf(g,"%d",c[2]);
                        fclose(g);
                        return 0;}
                 else
                 if(a[c[2]]==1)
                        {fprintf(g,"%d",c[1]);
                        fclose(g);
                        return 0;}
                  a[c[1]]=1;
                  a[c[2]]=2;}
        else
        if(ok==2)
                {if(a[c[1]]==1)
                        {fprintf(g,"%d",c[2]);
                        fclose(g);
                        return 0;
                        }
               if(a[c[2]]==2){fprintf(g,"%d",c[1]);
                                fclose(g);
                                return 0;}
                }}


        
        if(ok==0)
                for(j=1;j<=2*k;j++)
                        a[c[j]]=0;
         else
         if(ok==1)
         {for(j=1;j<=k;j++)
                if(a[c[j]]==2)a[c[j]]=0;
                else
                if(a[c[j]]==3)a[c[j]]=1;
          for(j=k+1;j<=2*k;j++)
                if(a[c[j]]==1)a[c[j]]=0;
                else
                if(a[c[j]]==3)a[c[j]]=2;
         }
         else
         if(ok==2)
         {for(j=1;j<=k;j++)
                if(a[c[j]]==1)a[c[j]]=0;
                else
                if(a[c[j]]==3)a[c[j]]=2;
         for(j=k+1;j<=2*k;j++)
              if(a[c[j]]==2)a[c[j]]=0;
              else
              if(a[c[j]]==3)a[c[j]]=1;
              }
      }
fclose(f);
ok=0;

for(i=1;i<=n;i++)
        if(a[i])
        if(ok)
                {fprintf(g,"%d",0);
                fclose(g);
                return 0;}
       else
        ok=i;
fprintf(g,"%d",i);
fclose(g);
return 0;}