Cod sursa(job #403801)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 25 februarie 2010 12:28:10
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <stdio.h>

int n,m,k,r;
int nr,x;
int i,j,ok;
int a[1025],b[1025],u[1025],g[1025];

int main(){
	
	FILE*f1=fopen("balanta.in","r");
	fscanf(f1,"%d %d",&n,&m);
	
	for(i=1;i<=n;i++){
		u[i]=1;
		g[i]=1;
	}
	
	for(i=1;i<=m;i++){
		fscanf(f1,"%d",&k);
		
		for(j=1;j<=k;j++){
			fscanf(f1,"%d",&x);
			a[x]=1;
		}
		for(j=1;j<=k;j++){
			fscanf(f1,"%d",&x);
			b[x]=1;
		}		
		
		fscanf(f1,"%d",&r);
		if(r==0)
			for(j=1;j<=n;j++){
				if(a[j]==1){
					g[j]=0;
					u[j]=0;
				}
				if(b[j]==1){
					g[j]=0;
					u[j]=0;
				}
				a[j]=0;
				b[j]=0;			
			}
		if(r==1){
			for(j=1;j<=n;j++){
				if(a[j]==1)
					u[j]=0;
				if(b[j]==1)
					g[j]=0;
				a[j]=0;
				b[j]=0;
			}
		}			
		if(r==2){
			for(j=1;j<=n;j++){
				if(a[j]==1)
					g[j]=0;
				if(b[j]==1)
					u[j]=0;
				a[j]=0;
				b[j]=0;
			}			
		}		
	}	
	
	fclose(f1);
	
	for(i=1;i<=n;i++){
		if(g[i]==1){
			nr=i;
			if(ok==0)
				ok=1;
			else{
				nr=0;
				break;
			}
		}
		if(u[i]==1){
			nr=i;
			if(ok==0)
				ok=1;
			else{
				nr=0;
				break;
			}
		}

	}		
	
	FILE*f2=fopen("balanta.out","w");
	fprintf(f2,"%d",nr);
	fclose(f2);	
	
	return 0;
}