Cod sursa(job #57067)

Utilizator FlorianFlorian Marcu Florian Data 1 mai 2007 08:33:25
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<stdio.h>
#include<string.h>
int main()
{long n,h[1025],l[1025],a[1025],b[1025],i,j,m,oka,okb,x,k,var;
FILE*f=fopen("balanta.in","r");
FILE*g=fopen("balanta.out","w");
fscanf(f,"%ld %ld",&n,&m);
for(i=1;i<=n;i++) {h[i]=1;l[i]=1;}
for(k=1;k<=m;k++)
	{
	fscanf(f,"%ld",&x);
	for(i=1;i<=x;i++) fscanf(f,"%ld",&a[i]);
	for(i=1;i<=x;i++) fscanf(f,"%ld",&b[i]);
	fscanf(f,"%ld",&var);
	if(var==0)
		{
		for(i=1;i<=x;i++)
			{
			h[a[i]]=0; h[b[i]]=0;
			l[a[i]]=0; l[b[i]]=0;
			}
		}
	else
		{
		for(i=1;i<=x;i++)
			{
			if(h[a[i]]!=0) h[a[i]]=2;
			if(l[b[i]]!=0) l[b[i]]=2;}
		for(i=1;i<=n;i++)
			{
			if (h[i]==2) h[i]=1;
			else h[i]=0;
			if(l[i]==2) l[i]=1;
			else l[i]=0; }

		}}
oka=0;okb=0;
long p;
for(i=1;i<=n;i++)
	{
	if(h[i]==1) {p=i;oka=1; }
	if(l[i]==1) {okb=1;       p=i;}
	}
if((oka==1&&okb==0)||(oka==0&&okb==1)) fprintf(g,"%ld",p);
else fprintf(g,"0");
fclose(f);
fclose(g);
return 0;}