Pagini recente » Cod sursa (job #1205665) | Cod sursa (job #633794) | Cod sursa (job #2763) | Cod sursa (job #164144) | Cod sursa (job #25379)
Cod sursa(job #25379)
#include<stdio.h>
#include<string.h>
int n,m,viz[1025],nr,k;
int a[550],b[550];
FILE *f=fopen("balanta.in","r");
FILE *g=fopen("balanta.out","w");
void pune(int a[],int b[])
{ int i,numa,poza,numb,pozb;
if (nr==1)
if (viz[a[1]]==viz[b[1]])
viz[a[1]]=3;
else
viz[a[1]]=2,viz[b[1]]=1;
else
{
numa=0;poza=0;
for (i=1;i<=nr;i++)
if (viz[a[i]]==2)
++numa,poza=i;
else
viz[a[i]]=2;
numb=0;pozb=0;
for (i=1;i<=nr;i++)
if (viz[b[i]]==1)
++numb,pozb=i;
else
viz[b[i]]=1;
if (numa==1)
viz[poza]=3;
if (numb==1)
viz[pozb]=3;
}
}
void read()
{
int i,j,ex=1;
memset(viz,0xff,sizeof(viz));
fscanf(f,"%d%d",&n,&m);
for (i=1;i<=m;i++)
{
fscanf(f,"%d",&nr);
for (j=1;j<=nr;j++)
fscanf(f,"%d",&a[j]);
for (j=1;j<=nr;j++)
fscanf(f,"%d",&b[j]);
fscanf(f,"%d",&k);
if (k==0)
{ for (j=1;j<=nr;j++)
viz[a[j]]=0,viz[b[j]]=0;
}
else
if (k==1)
pune(a,b);
else
pune(b,a);
}
for (i=1;i<=n && ex;i++)
if (viz[i]==3)
ex=0;
if (ex==0)
fprintf(g,"%d",i-1);
else
fprintf(g,"0");
}
int main()
{
read();
fclose(f);
fclose(g);
return 0;
}