Pagini recente » Cod sursa (job #93294) | Monitorul de evaluare | Cod sursa (job #1109042) | Cod sursa (job #2490743) | Cod sursa (job #804980)
Cod sursa(job #804980)
#include<stdio.h>
#include<string.h>
int f[1028];
int a1[1028][1028],a2[1028][1028],r[1028],x[1028];
int main()
{
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
int j,n,m,i;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d",&x[i]);
for(j=1;j<=x[i];j++)
scanf("%d",&a1[i][j]);
for(j=1;j<=x[i];j++)
scanf("%d",&a2[i][j]);
scanf("%d",&r[i]);
}
//daca moneda este mai usoara:
for(i=1;i<=m;i++)
{
if(r[i]==0)
for(j=1;j<=x[i];j++)
f[a1[i][j]]=f[a2[i][j]]=1;
else
if(r[i]==1)
for(j=1;j<=x[i];j++)
f[a1[i][j]]=1;
else
for(j=1;j<=x[i];j++)
f[a2[i][j]]=1;
}
int ok1=0;
for(i=1;i<=n;i++)
if(f[i]==0 && ok1==0)
ok1=i;
else
if(f[i]==0 && ok1!=0)
{ok1=0;break;}
memset(f,0,sizeof(f));
//daca moneda este mai grea:
for(i=1;i<=m;i++)
{
if(r[i]==0)
for(j=1;j<=x[i];j++)
f[a1[i][j]]=f[a2[i][j]]=1;
else
if(r[i]==1)
for(j=1;j<=x[i];j++)
f[a2[i][j]]=1;
else
for(j=1;j<=x[i];j++)
f[a1[i][j]]=1;
}
int ok2=0;
for(i=1;i<=n;i++)
if(f[i]==0 && ok2==0)
ok2=i;
else
if(f[i]==0 && ok2!=0)
{ok2=0;break;}
if(ok1==0 && ok2==0)
printf("0\n");
else
if(ok1==0 && ok2!=0)
printf("%d\n",ok2);
else
if(ok1!=0 && ok2==0)
printf("%d\n",ok1);
else
if(ok1!=ok2)
printf("0\n");
else
printf("%d\n",ok1);
return 0;
}