Pagini recente » Cod sursa (job #2725017) | Cod sursa (job #2184521) | Borderou de evaluare (job #731666) | Cod sursa (job #3235878) | Cod sursa (job #27610)
Cod sursa(job #27610)
#include<cstdio>
int taler1[5001][5001],taler2[5001][5001],r[5001],i,j,sol[10001],nsol,m,n;
int main()
{
freopen ("balanta.in","rt",stdin);
freopen ("balanta.out","wt",stdout);
scanf("%d %d",&n,&m);
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;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[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]) {printf("%d\n",j);return 0;}
}
// pp k e mai grea
nsol=m;
for (i=1;i<=m;i++)
sol[i]=0;
for (i=1;i<=n;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]) {printf("%d\n",j);return 0;}
}
return 0;
}