Cod sursa(job #27725)

Utilizator DITzoneCAdrian Diaconu DITzoneC Data 7 martie 2007 00:05:51
Problema Balanta Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <string.h>

#define FOR(i,s,d) for(i=(s);i<(d);++i)
#define nmax 1025

int n,k,m,A[nmax],B[nmax],sol,poz,C[nmax],D[nmax],E[nmax];

int main()
{
	int i,j,iii,ii;
	freopen("balanta.in","r",stdin);
	freopen("balanta.out","w",stdout);
	scanf("%d %d",&n,&k);
		memset(C,-1,sizeof(A));
		memset(D,-1,sizeof(B));
	FOR(ii,0,k)
	{
		scanf("%d",&m);
		FOR(i,0,2*m)
			scanf("%d",&C[i]),C[i]--;
		scanf("%d",&j);
		memset(A,j==0?-1:0,sizeof(A));
		memset(B,j==0?-1:0,sizeof(B));
		FOR(i,0,m)
		{
			if(j==0)
				A[C[i]]=0,A[C[i+m]]=0;
			if(j==1)
				A[C[i]]=-1,B[C[i+m]]=-1;
			if(j==2)
				A[C[i+m]]=-1,B[C[i]]=-1;
		}
		FOR(i,0,n)
			D[i]&=A[i],E[i]&=B[i];
	}
	FOR(i,0,n)
		if(E[i]||D[i])
			sol++,poz=i+1;
	if(sol!=1)
		poz=0;
	printf("%d\n",poz);
	return 0;
}