Cod sursa(job #357914)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 21 octombrie 2009 05:37:17
Problema Balanta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>

#define NM 1025

int main(){
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
int i,k,kd,v[NM]={0},u[NM]={0},g[NM]={0},s,c=0,w[NM]={0};
int n,m,cm,l=0,h=0,e=0,mu,mg,mf;
mu=mg=mf=0;
scanf("%d%d",&n,&m);
cm=m;
while(m--){
	scanf("%d",&k);
	kd=2*k;
	for(i=1;i<=kd;++i) scanf("%d",&v[i]);
	scanf("%d",&s);
	if(!s){
		for(i=1;i<=kd;++i) w[v[i]]=1;
		continue;
		}
	c++;
	if(s==1)
		for(i=1;i<=k;++i){
			if(!w[v[i]]) g[v[i]]++;
			else g[v[i]]=0;
			if(!w[v[i+k]]) u[v[i+k]]++;
			else u[v[i+k]]=0;
			}
	else
		for(i=1;i<=k;++i){
			if(!w[v[i]]) u[v[i]]++;
			else u[v[i]]=0;
			if(!w[v[i+k]]) g[v[i+k]]++;
			else g[v[i+k]]=0;
			}
	}
for(i=1;i<=n;++i){
	if(u[i]==c)	l++,mu=i;
	if(g[i]==c) h++,mg=i;
	if(!w[i]) e++,mf=i;
	}
if(!c)
	if(e==1) printf("%d",mf);
	else printf("0");
else
	if(l==1&&h==0) printf("%d",mu);
	else
		if(l==0&&h==1) printf("%d",mg);
		else printf("0");
return 0;
}