Cod sursa(job #62805)

Utilizator MirageRobert Sandu Mirage Data 24 mai 2007 08:37:15
Problema Balanta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<stdio.h>
int main () {
	int n,m,k,r,i,u[1025],g[1025],a[512],b[512],nr1=0,nr2=0,j,ind;
	FILE *in=fopen("balanta.in","r"), *out=fopen("balanta.out","w");
	fscanf(in,"%d%d",&n,&m);
	for(i=1;i<=n;i++){
		u[i]=i;
		g[i]=i;
	}
	while(m){
		m--;
		fscanf(in,"%d",&k);
		for(i=0;i<k;i++)
			fscanf(in,"%d",&a[i]);
		for(i=0;i<k;i++)
			fscanf(in,"%d",&b[i]);
		fscanf(in,"%d",&r);
		if(r==0)
			for(i=0;i<k;i++){
				u[a[i]]=0;
				u[b[i]]=0;
				g[a[i]]=0;
				g[b[i]]=0;
			}
		if(r==1)
			for(i=1;i<=n;i++){
				for(j=0;j<k&&a[j]!=i;j++)
					;
				if(j==k)
					g[i]=0;
				for(j=0;j<k&&b[j]!=i;j++)
					;
				if(j==k)
					u[i]=0;
			}
		if(r==2)
			for(i=1;i<=n;i++){
				for(j=0;j<k&&a[j]!=i;j++)
					;
				if(j==k)
					u[i]=0;
				for(j=0;j<k&&b[j]!=i;j++)
					;
				if(j==k)
					g[i]=0;
			}
		for(i=1;i<=n;i++){
			if(u[i]){
				nr1++;
				ind=i;
			}
			if(g[i]){
				nr2++;
				ind=i;
			}
		}
	}
	if((nr1==1&&nr2==0)||(nr1==0&&nr2==1))
		fprintf(out,"%d\n",ind);
	else
		fprintf(out,"0\n");
	fclose(in);
	fclose(out);
	return 0;
}