Cod sursa(job #131339)

Utilizator razvi9Jurca Razvan razvi9 Data 3 februarie 2008 17:44:39
Problema Balanta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<cstdio>
#include<set>
using namespace std;
set <int> a;
set <int> b;
set <int> ::iterator it;
int n,m,x[1050],y[1050],i,k;
int main()
{
	freopen("balanta.in","r",stdin);
	freopen("balanta.out","w",stdout);
	scanf("%d %d",&n,&m);
	for(i=1;i<=n;i++){
		a.insert(i);
		b.insert(i);}
	for(;m;m--){
		scanf("%d",&n);
		for(i=1;i<=n;i++) scanf("%d",&x[i]);
		for(i=1;i<=n;i++) scanf("%d",&y[i]);
		scanf("%d",&k);
		if(k==0)
			for(i=1;i<=n;i++) {
				if((it=a.find(x[i]))!=a.end())
					a.erase(it);
				if((it=b.find(x[i]))!=b.end())
					b.erase(it);
				if((it=a.find(y[i]))!=a.end())
					a.erase(it);
				if((it=b.find(y[i]))!=b.end())
					b.erase(it);}
		if(k==1)
			for(i=1;i<=n;i++) {
				if((it=a.find(y[i]))!=a.end())
					a.erase(it);
				if((it=b.find(x[i]))!=b.end())
					b.erase(it);}
		if(k==2)
			for(i=1;i<=n;i++) {
				if((it=a.find(x[i]))!=a.end())
					a.erase(it);
				if((it=b.find(y[i]))!=b.end())
					b.erase(it);}}
	if(a.size()==1) printf("%d\n",*a.begin());
	else
		if(b.size()==1) printf("%d\n",*b.begin());
		else printf("0\n");
	fclose(stdout);
	return 0;}