Cod sursa(job #25519)

Utilizator g3ppyStoian Vlad g3ppy Data 4 martie 2007 12:48:55
Problema Balanta Scor 30
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 10-a Marime 1.04 kb
#include <fstream.h>
#include <stdio.h>

int a[1050],i,j,b[1050],n,se,m,k,nr0,nr1,nr2,m0,m1,m2;

FILE *fin, *fout;

int main()
{
fin=fopen("balanta.in","rt");
fout=fopen("balanta.out","wt");
fscanf(fin,"%d %d",&n,&m);
for (i=0;i<m;i++)
    {
    fscanf(fin,"%d",&k);
    for (j=1;j<=2*k;j++)
	fscanf(fin,"%d", &b[j]);
    fscanf(fin,"%d",&se);
    if (se==0)
       for (j=1;j<=2*k;j++)
	   a[b[j]]=-1;
    else
       if (se==1)
	  for (j=1;j<=k;j++)
	      {
	      a[b[j]]=1;
	      a[b[2*k-j+1]]=2;
	      }
    else
       if (se==2)
	  for (j=1;j<=k;j++)
	      {
	      a[b[j]]=2;
	      a[b[2*k-j+1]]=1;
	      }



    }
for(i=1;i<=n;i++)
   {if (a[i]==0){ nr0++; m0=i;}
    else if (a[i]==1){ nr1++;m1=i;}
    else if (a[i]==2){ nr2++;m2=i;}
    }
if (nr0==1&&nr1!=1&&nr2!=1)   fprintf(fout,"%d",m0);
else if (nr1==1&&nr0!=1&&nr2!=1)  fprintf(fout,"%d",m1);
else if (nr2==1&&nr0!=1&&nr1!=1)  fprintf(fout,"%d",m2);
else fprintf(fout,"0");
fprintf(fout,"\n");
fclose(fin);
fclose(fout);

return 0;
}