Cod sursa(job #699532)
#include<stdio.h>
#include<stdlib.h>
FILE *f = fopen("balanta.in","r");
FILE *g = fopen("balanta.out","w");
#define MaxN 1100
int N,M,K,comp,B[MaxN],A1[MaxN],A2[MaxN],viz[MaxN];
void citire(void)
{
fscanf(f,"%d %d\n",&N,&M);
for(int i=1;i<=M;i++)
{
fscanf(f,"%d ",&K);
for(int j=1;j<=K;j++)
fscanf(f,"%d",&A1[j]),viz[A1[j]] = 1;
for(int j=1;j<=K;j++)
fscanf(f,"%d",&A2[j]),viz[A2[j]] = 1;
fscanf(f,"%d",&comp);
if(comp == 0)
for(int j=1;j<=K;j++)
B[A1[j]] = B[A2[j]] = 0;
else if(comp == 1)
for(int j=1;j<=K;j++)
B[A1[j]] ++,B[A2[j]] --;
else
for(int j=1;j<=K;j++)
B[A1[j]] --, B[A2[j]]++;
}
}
int ExistaUnuSigur(void)
{
int MAX = 0,NR = 0,P;
for(int i=1;i<=N;i++)
if(abs(B[i]) > MAX)
MAX = abs(B[i]), NR = 1,P = i;
else if(abs(B[i]) == MAX)
++ NR;
if(MAX == 0)
{
NR = 0;
for(int i=1;i<=N;i++)
if(viz[i] == 0)
++ NR, P = i;
if(NR == 1)
return P;
else
return 0;
}
if(NR > 1)
return 0;
else
return P;
}
int main()
{
citire();
fprintf(g,"%d",ExistaUnuSigur());
return 0;
}