Pagini recente » Cod sursa (job #2086271) | Cod sursa (job #1557846) | Cod sursa (job #114044) | Cod sursa (job #293589) | Cod sursa (job #63440)
Cod sursa(job #63440)
#include <stdio.h>
#include <string.h>
#define Nmax 1100
int greu[Nmax], usor[Nmax], A[Nmax], B[Nmax], tmp[Nmax];
int main()
{
freopen("balanta.in","r",stdin);
freopen("balanta.out","w",stdout);
int n,i,j,m,rez;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
greu[i] = usor[i] = 1;
for(j=m;j>0;--j)
{
scanf("%d",&m);
for(i=1;i<=m;++i)
scanf("%d",A+i);
for(i=1;i<=m;++i)
scanf("%d",B+i);
scanf("%d",&rez);
if(rez == 0)
{
//daca sunt egale toate
for(i=1;i<=m;++i)
usor[A[i]] = usor[B[i]] = 0;
for(i=1;i<=m;++i)
greu[A[i]] = greu[B[i]] = 0;
}
else
if(rez == 1)
{
//daca A este mai greu
memset(tmp,0,sizeof(tmp));
for(i=1;i<=m;++i)
tmp[A[i]] = 1;
for(i=1;i<=n;++i)
greu[i] &= tmp[i];
memset(tmp,0,sizeof(tmp));
for(i=1;i<=m;++i)
tmp[B[i]] = 1;
for(i=1;i<=n;++i)
usor[i] &= tmp[i];
}
else
if(rez == 2)
{
//daca B este mai greu
memset(tmp,0,sizeof(tmp));
for(i=1;i<=m;++i)
tmp[B[i]] = 1;
for(i=1;i<=n;++i)
greu[i] &= tmp[i];
memset(tmp,0,sizeof(tmp));
for(i=1;i<=m;++i)
tmp[A[i]] = 1;
for(i=1;i<=n;++i)
usor[i] &= tmp[i];
}
}
int Q = 0;
for(i=1;i<=n;++i)
Q += usor[i] + greu[i];
if(Q < 3)
{
for(i=1;i<=n;++i)
if(usor[i] || greu[i])
printf("%d\n", i);
}
else
printf("0\n");
return 0;
}