Cod sursa(job #42989)

Utilizator c_sebiSebastian Crisan c_sebi Data 29 martie 2007 18:26:39
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <stdio.h>

int L[1025], H[1025];
int A[1025], B[1025];
int n, m, p;


int main()
{
	int i, x, aux, s, j;
	FILE *f, *g;
	f=fopen ("balanta.in", "r");
	fscanf (f, "%d %d", &n, &m);
	for (i=1; i<=n; i++)
		L[i]=H[i]=1;
	for (j=1; j<=m; j++)
		{
			for (i=1; i<=n; i++)
				A[i]=B[i]=0;
			fscanf (f, "%d", &x);
			for (i=1; i<=x; i++)
				{
					fscanf (f, "%d", &aux);
					A[aux]=1;
				}
			for (i=1; i<=x; i++)
				{
					fscanf (f, "%d", &aux);
					B[aux]=1;
				}
			fscanf (f, "%d", &s);
			if (s==0)
				for (i=1; i<=n; i++)
					if (L[i])
						if (A[i] || B[i]) L[i]=0;
						else;
					else if (H[i])
						if (A[i] || B[i]) H[i]=0;
						else;
					else;
			else if (s==1)
				for (i=1; i<=n; i++)
					{H[i] = H[i]*A[i];
					L[i] = L[i]*B[i];
					}
			else if (s==2)
				  for (i=1; i<=n; i++)
					{H[i] = H[i]*B[i];
					L[i] = L[i]*A[i];
					}
		}
	p=0;
	for (i=1; i<=n; i++)
		if (L[i])
			if (!p) p=i;
			else p=-1;
	for (i=1; i<=n; i++)
		if (H[i])
			if (!p) p=i;
			else p=-1;
	g=fopen("balanta.out", "w");
	if (p==-1)
		fprintf(g, "0\n");
	else fprintf(g, "%d\n", p);
	fclose(g);
	return 0;
}