Pagini recente » Cod sursa (job #3142477) | Cod sursa (job #1868581) | Cod sursa (job #2727600) | Cod sursa (job #1891861) | Cod sursa (job #26516)
Cod sursa(job #26516)
#include <stdio.h>
#define infile "balanta.in"
#define outfile "balanta.out"
#define NMAX 1030
FILE *fin,*fout;
int n,m;
int k,op,left[NMAX],right[NMAX];
int count_mic[NMAX],count_mare[NMAX];
bool sol[NMAX];
void adauga(int count[NMAX], int k, int v[NMAX])
{
for(int i=0;i<k;i++)
count[v[i]]++;
}
int main()
{
int i,j,all=0;
fin=fopen(infile,"r");
fout=fopen(outfile,"w");
fscanf(fin,"%d %d",&n,&m);
for(i=1;i<=n;i++)
count_mic[i]=count_mare[i]=0;
for(i=1;i<=m;i++)
{
fscanf(fin,"%d",&k);
for(j=0;j<k;j++)
fscanf(fin,"%d",&left[j]);
for(j=0;j<k;j++)
fscanf(fin,"%d",&right[j]);
fscanf(fin,"%d",&op);
if(op)
all++;
if(op==1)
{
adauga(count_mic,k,right);
adauga(count_mare,k,left);
}
if(op==2)
{
adauga(count_mic,k,left);
adauga(count_mare,k,right);
}
if(op==0)
{
for(j=0;j<k;j++)
{
count_mic[left[j]]=count_mare[left[j]]=-1;
count_mic[right[j]]=count_mare[right[j]]=-1;
}
}
}
for(i=1;i<=n;i++)
sol[i] = (count_mic[i]==all) || (count_mare[i]==all);
int count=0,poz;
for(i=1;i<=n;i++)
if(sol[i])
if(count)
{
fprintf(fout,"0\n");
fclose(fout);
return 0;
}
else
{
count++;
poz=i;
}
if(count)
fprintf(fout,"%d\n",poz);
else
fprintf(fout,"0\n");
fclose(fin);
fclose(fout);
return 0;
}