Cod sursa(job #403741)

Utilizator Robert29FMI Tilica Robert Robert29 Data 25 februarie 2010 11:23:19
Problema Balanta Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <stdio.h>
FILE*f=fopen("balanta.in","r");
FILE*g=fopen("balanta.out","w");
int i,j,n,m,k,x,ind;
char t[1025],ok,u[1025],a[1025],b[1025];
int main() {
	fscanf(f,"%d%d",&n,&m);
	for(i=1;i<=n;i++)
		u[i]=t[i]=1;
	for (i=1;i<=m;i++){
		fscanf(f,"%d",&k);
		for(j=1;j<=k;j++) {
			fscanf(f,"%d",&x);
			a[x] = 1;
		}
		for(j=1;j<=k;j++) {
			fscanf(f,"%d",&x);
			b[x] = 1;
		}
		
		fscanf(f,"%d",&ind);
		if(ind==0)
			for(j=1;j<=n;j++){
				if(a[j]==1)
					u[j]=t[j]=0;
				if(b[j]==1)
					u[j]=t[j]=0;
			}
		else
			if(ind==1)
				for(j=1;j<=n;j++){
					if(a[j]!=1)
						t[j]=0;
					if(b[j]!=1)
						u[j]=0;
				}
			else
				for(j=1;j<=n;j++){
					if(a[j]!=1)
						u[j]=0;
					if(b[j]!=1)
						t[j]=0;
				}
		for(j=1;j<=n;j++)
			a[j]=b[j]=0;
	}
	x = 0;
	for(i=1;i<=n;i++) {
		if(u[i]==1){
			x++;
			ok=i;
		}
		if(t[i]==1){
			x++;
			ok=i;
		}
	}
	if(x!=1)
		fprintf(g,"0");
	else
		fprintf(g,"%d",ok);
	fclose(g);
	fclose(f);
	return 0;
}