Cod sursa(job #292506)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 31 martie 2009 11:14:57
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
int n,k;
int h[1026];
int l[1026];
int f1[1026];
int f2[1026];

void read()
{
	freopen("balanta.in","r",stdin);
	freopen("balanta.out","w",stdout);
	scanf("%d%d",&n,&k);
	int i,t,nr,x,tip;
	for(i=1;i<=n;i++)
		h[i]=l[i]=1;
	for(t=1;t<=k;t++)
	{
		scanf("%d",&nr);
		for(i=1;i<=nr;i++)
		{
			scanf("%d",&x);
			f1[x]=1;
		}
		for(i=1;i<=nr;i++)
		{
			scanf("%d",&x);
			f2[x]=1;
		}
		scanf("%d",&tip);
		if(tip==0)
			for(i=1;i<=n;i++)
			{
				if(f1[i] || f2[i])
					h[i]=l[i]=0;
				f1[i]=f2[i]=0;
			}
		if(tip==1)
			for(i=1;i<=n;i++)
			{
				h[i]=h[i]&f1[i];
				l[i]=l[i]&f2[i];
				f1[i]=f2[i]=0;
			}
		if(tip==2)
			for(i=1;i<=n;i++)
			{
				h[i]=h[i]&f2[i];
				l[i]=l[i]&f1[i];
				f1[i]=f2[i]=0;
			}
	}
	nr=0;
	int ci;
	for(i=1;i<=n;i++)
	{
		if(h[i])
		{
			ci=i;
			nr++;
		}
		if(l[i])
		{
			ci=i;
			nr++;
		}
	}
	if(nr==1)
		printf("%d\n",ci);
	else
		printf("0\n");
}

int main()
{
	read();
	return 0;
}