Cod sursa(job #25268)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 4 martie 2007 11:44:18
Problema Balanta Scor 90
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 10-a Marime 1.61 kb
#include<stdio.h>
int n,m,nu,ng,nn,nb,l[2000],r[2000],cod[2000],tip,i,j,k,sol;
int main()
{
	FILE *f;
	f=fopen("balanta.in","r");
	fscanf(f,"%d%d",&n,&m);
	nn=n;nu=0;ng=0;nb=0;
	for(i=1;i<=m;i++)
	{
		fscanf(f,"%d",&k);
		for(j=1;j<=k;j++)
		fscanf(f,"%d",&l[j]);
		for(j=1;j<=k;j++)
		fscanf(f,"%d",&r[j]);
		fscanf(f,"%d",&tip);
		if(tip==0)
		{ for(j=1;j<=k;j++)
		  { if(cod[l[j]]==0) {cod[l[j]]=1;nb++;nn--;}
		    if(cod[l[j]]==2) {cod[l[j]]=1;nb++;ng--;}
		    if(cod[l[j]]==3) {cod[l[j]]=1;nb++;nu--;}
		  }
		  for(j=1;j<=k;j++)
		  { if(cod[r[j]]==0) {cod[r[j]]=1;nb++;nn--;}
		    if(cod[r[j]]==2) {cod[r[j]]=1;nb++;ng--;}
		    if(cod[r[j]]==3) {cod[r[j]]=1;nb++;nu--;}
		  }
		}
		if(tip==1)
		{ for(j=1;j<=k;j++)
		  { if(cod[l[j]]==0) {cod[l[j]]=2;ng++;nn--;}
		    if(cod[l[j]]==3) {cod[l[j]]=1;nb++;nu--;}
		  }
		  for(j=1;j<=k;j++)
		  { if(cod[r[j]]==0) {cod[r[j]]=3;nu++;nn--;}
		    if(cod[r[j]]==2) {cod[r[j]]=1;nb++;ng--;}
		  }
		}
		if(tip==2)
		{ for(j=1;j<=k;j++)
		  { if(cod[l[j]]==0) {cod[l[j]]=3;nu++;nn--;}
		    if(cod[l[j]]==2) {cod[l[j]]=1;nb++;ng--;}
		  }
		  for(j=1;j<=k;j++)
		  { if(cod[r[j]]==0) {cod[r[j]]=2;ng++;nn--;}
		    if(cod[r[j]]==3) {cod[r[j]]=1;nb++;nu--;}
		  }
		}
	}
	fclose(f);
	f=fopen("balanta.out","w");
	if((ng!=1)&&(nu!=1)) fprintf(f,"0\n");
	if((ng==1)&&(nu==1)) fprintf(f,"0\n");
	if((ng==1)&&(nu!=1))
	{ for(i=1;i<=n;i++)
	  if(cod[i]==2) {sol=i;break;}
	  fprintf(f,"%d\n",sol);
	}
	if((ng!=1)&&(nu==1))
	{ for(i=1;i<=n;i++)
	  if(cod[i]==3) {sol=i;break;}
	  fprintf(f,"%d\n",sol);
	}
	fclose(f);
	return 0;
}