Cod sursa(job #148236)

Utilizator za_wolfpalianos cristian za_wolf Data 4 martie 2008 00:14:35
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
#include<string.h>
#define NMAX 1100
long x[NMAX],y[NMAX],a[NMAX],b[NMAX],i,j,k,l,q,p,n,m;
int main()
{
	freopen("balanta.in","r",stdin);
	freopen("balanta.out","w",stdout);
	scanf("%ld%ld",&n,&m);
	for (i=1;i<=n;i++)
		a[i]=b[i]=1;
	for (i=1;i<=m;i++)
	{
		scanf("%ld",&k);
		for (j=1;j<=k;j++)
		{
			scanf("%ld",&q);
			x[q]=1;
		}
		for (j=1;j<=k;j++)
		{
			scanf("%ld",&q);
			y[q]=1;
		}
		scanf("%ld",&q);
		if (q==0)
			for (j=1;j<=n;j++)
			{
				if (x[j]||y[j])
				{
					a[j]=0;
					b[j]=0;
				}
			}
		else
		if (q==1)
			for (j=1;j<=n;j++)
			{
				if (!x[j])
				a[j]=0;
				if (!y[j])
				b[j]=0;
			}
		else
			for (j=1;j<=n;j++)
			{

				if (!y[j])
				a[j]=0;
				if (!x[j])
				b[j]=0;
			}

		memset(x,0,sizeof(x));
		memset(y,0,sizeof(y));


	}
	i=0;
	j=0;
	for (l=1;l<=n;l++)
	{
		if (a[l])
		{
			i++;
			p=l;
		}
		if (b[l])
		{
			j++;
			p=l;
		}
	}
	if ((i==1&&!j)||(j==1&&!i))
		printf("%ld\n",p);
		else
		printf("0\n");


	return 0;
}