Cod sursa(job #241188)

Utilizator ConsstantinTabacu Raul Consstantin Data 9 ianuarie 2009 16:04:08
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.05 kb
#include<stdio.h>
int sus[1050],jos[1050],i,j,k,l,n,m,ok,c[1050];
int main(){
FILE *f=fopen("balanta.in","r");
FILE *g=fopen("balanta.out","w");
fscanf(f,"%d %d",&n,&m);
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)
                {if(ok==1)
                        {if(sus[c[1]])
                                {fprintf(g,"%d",c[2]);
                                fclose(g);
                                return 0;}
                        else
                        if(jos[c[2]])
                                {fprintf(g,"%d",c[1]);
                                fclose(g);
                                return 0;}}
              else
              if(ok==2)
                        {if(jos[c[1]])
                                {fprintf(g,"%d",c[2]);
                                fclose(g);
                                return 0;}
                       else
                      if(sus[c[2]])
                        {fprintf(g,"%d",c[1]);
                        fclose(g);
                        return 0;}
                        }
          else
                sus[c[1]]=jos[c[1]]=sus[c[2]]=jos[c[2]]=1;
          }
       else
       {if(ok==1)
                {for(j=1;j<=k;j++)
                        jos[c[j]]=1;
                for(j=k+1;j<=2*k;j++)
                        sus[c[j]]=1;
               }
       else
       if(ok==2)
                {for(j=1;j<=k;j++)
                        sus[c[j]]=1;
                for(j=k+1;j<=2*k;j++)
                        jos[c[j]]=1;
               }
     else
                for(j=i;j<=2*k;j++)
                        sus[c[j]]=jos[c[j]]=1;
                        
               
    }
    }
ok=0;
for(i=1;i<=n;i++)
        if(sus[i]==0||jos[i]==0){
        if(ok)
                {fprintf(g,"%d",0);
                fclose(g);
                return 0;}
       else
        ok=i; }
fprintf(g,"%d",ok);
fclose(g);
return 0;}