Pagini recente » Cod sursa (job #1883748) | Cod sursa (job #2486378) | Cod sursa (job #40210) | Cod sursa (job #2730031) | Cod sursa (job #27625)
Cod sursa(job #27625)
#include<cstdio>
int taler1[5001][5001],taler2[5001][5001],r[5001],i,j,sol[10001],nsol,m,n,g1,g2;
int main()
{
freopen ("balanta.in","rt",stdin);
freopen ("balanta.out","wt",stdout);
scanf("%d %d",&m,&n);
for (i=1;i<=n;i++)
{
scanf("%d",&taler1[i][0]);
for (j=1;j<=taler1[i][0];j++)
scanf("%d",&taler1[i][j]);
for (j=1;j<=taler1[i][0];j++)
scanf("%d",&taler2[i][j]);
scanf("%d",&r[i]);
}
// pp k e mai usoara
nsol=m;
for (i=1;i<=n&&!g1;i++)
{
if (r[i]==0)
{
for (j=1;j<=taler1[i][0];j++)
sol[taler1[i][j]]=1, sol[taler2[i][j]]=1, nsol-=2;
}
else
if (r[i]==1)
{
for (j=1;j<=taler1[i][0];j++)
sol[taler2[i][j]]=1, nsol--;
}
else
for (j=1;j<=taler1[i][0];j++)
sol[taler1[i][j]]=1, nsol--;
if (nsol==1)
for (j=1;j<=m;j++) if (!sol[j]) {g1=j;}
}
// pp k e mai grea
nsol=m;
for (i=1;i<=m;i++)
sol[i]=0;
for (i=1;i<=n&&!g2;i++)
{
if (r[i]==0)
{
for (j=1;j<=taler1[i][0];j++)
sol[taler1[i][j]]=1, sol[taler2[i][j]]=1, nsol--;
}
else
if (r[i]==1)
{
for (j=1;j<=taler1[i][0];j++)
sol[taler1[i][j]]=1, nsol--;
}
else
for (j=1;j<=taler1[i][0];j++)
sol[taler2[i][j]]=1, nsol--;
if (nsol==1)
for (j=1;j<=m;j++) if (!sol[j]) {g2=j;}
}
if (g1!=g2)
{
if (g1!=0 && g2!=0)
printf("0\n");
else
if (g1!=0 && g2==0)
printf("%d\n",g1);
else
if (g2!=0 && g1==0)
printf("%d\n",g2);
}
else
if (g1==g2 && g1!=0)
printf("%d\n",g1);
else
printf("0\n");
return 0;
}