Cod sursa(job #61461)

Utilizator swift90Ionut Bogdanescu swift90 Data 19 mai 2007 16:46:08
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1025],b[1025],h[1025],l[1025];
int main(){
	freopen("balanta.in","r",stdin);
	freopen("balanta.out","w",stdout);
	int n,m,k,r,i,j,x;
	
	scanf("%d %d",&n,&m);
	for(i=0;i<m;i++){
		scanf("%d",&k);
		for(j=0;j<k;j++)
			scanf("%d",&a[j]);
		for(j=0;j<k;j++)
			scanf("%d",&b[j]);
		scanf("%d",&r);
		if(r==0)
			for(j=0;j<k;j++){
				h[a[j]]=1;
				h[b[j]]=1;
				l[a[j]]=1;
				l[b[j]]=1;
			}
		if(r==1){
			sort(a,a+k);
			sort(b,b+k);
			x=0;
			for(j=1;j<=n;j++){
				if(j!=a[x])
					h[j]=1;
				else{
					x++;
					if(x==k)
						a[x]=0;
				}
			}
			x=0;
			for(j=1;j<=n;j++){
				if(j!=b[x])
					l[j]=1;
				else{
					x++;
					if(x==k)
						b[x]=0;
				}
			}
		}
		if(r==2){
			sort(a,a+k);
			sort(b,b+k);
			x=0;
			for(j=1;j<=n;j++){
				if(j!=b[x])
					h[j]=1;
				else{
					x++;
					if(x==k)
						b[x]=0;
				}
			}
			x=0;
			for(j=1;j<=n;j++){
				if(j!=a[x])
					l[j]=1;
				else{
					x++;
					if(x==k)
						a[x]=0;
				}
			}
		}
	}
	
	r=k=0;
	for(i=1;i<=n;i++){
		if(h[i]==0)
			r++;
		if(l[i]==0)
			k++;
	}
	
	j=0;
	if(((r==1)&&(k==0))||((r==0)&&(k==1))){
		if(r==1){
			for(i=1;(i<=n)&&(j==0);i++){
				if(h[i]==0)
					j=i;
			}
		}
		else{
			for(i=1;(i<=n)&&(j==0);i++){
				if(l[i]==0)
					j=i;
			}
		}
		printf("%d\n",j);
	}
	else
		printf("0\n");
	
	return 0;
}