Cod sursa(job #987454)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 20 august 2013 18:47:23
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include<iostream>
#include<fstream>
using namespace std;

#define NMAX 1025

int a[NMAX],b[NMAX],h[NMAX],l[NMAX],aux[NMAX];

int main ()
{
	int n,m,k,i,j,r,st,dr;
	ifstream f("balanta.in");
	ofstream g("balanta.out");
	f>>n>>m;
	for(i=1;i<=n;i++) {
		h[i]=1;
		l[i]=1;
	}
	for(i=1;i<=m;i++) {
		f>>k;
		for(j=1;j<=k;j++)
			f>>a[j];
		for(j=1;j<=k;j++)
			f>>b[j];
		f>>r;
		if(r==0) { 
			for(j=1;j<=k;j++) {
				l[a[j]]=0;
				l[b[j]]=0;
				h[a[j]]=0;
				h[b[j]]=0;
			}
		}
		else if(r==1) {
			for(j=1;j<=k;j++) 
				aux[a[j]]=1;
			for(j=1;j<=n;j++)
				h[j]=(h[j]&aux[j]);
			for(j=1;j<=k;j++)
				aux[a[j]]=0;
			for(j=1;j<=k;j++) 
				aux[b[j]]=1;
			for(j=1;j<=n;j++)
				l[j]=(l[j]&aux[j]);
			for(j=1;j<=k;j++)
				aux[b[j]]=0;
		}
		else {
			for(j=1;j<=k;j++) 
				aux[b[j]]=1;
			for(j=1;j<=n;j++)
				h[j]=(h[j]&aux[j]);
			for(j=1;j<=k;j++)
				aux[b[j]]=0;
			for(j=1;j<=k;j++) 
				aux[a[j]]=1;
			for(j=1;j<=n;j++)
				l[j]=(l[j]&aux[j]);
			for(j=1;j<=k;j++)
				aux[a[j]]=0;
		}
	}
	f.close();
	st=0;
	dr=0;
	for(i=1;i<=n;i++) {
		st=st+h[i];
		dr=dr+l[i];
	}
	if(st+dr==1) {
		for(i=1;i<=n;i++)
			if(h[i]+l[i]==1)
				break;
		g<<i;
	}
	else g<<"0";
	g.close();
	return 0;
}