Pagini recente » Cod sursa (job #2565375) | Cod sursa (job #2794184) | Cod sursa (job #1480985) | Cod sursa (job #565976) | Cod sursa (job #26805)
Cod sursa(job #26805)
#include <stdio.h>
#define nmax 1025
int v[nmax],v2[nmax],a[nmax][nmax],b[nmax];
FILE *f,*g;
int main()
{
int n,m,i,j,k,x,r;
f=fopen("balanta.in","rt");
g=fopen("balanta.out","wt");
fscanf(f,"%d %d\n",&n,&m);
for (i=1;i<=m;i++)
{
fscanf(f,"%d",&k);
x=2*k;
for (j=1;j<=x;j++)
{
fscanf(f,"%d",&r);
b[j]=r;
a[i][r]=1;
}
fscanf(f,"%d\n",&r);
//-1 <
//+1 >
//+2 =
if (r==0)
{
for (j=1;j<=n;j++)
if (a[i][j])
{
v[j]=1;
v2[j]=2;
}
}
else
if (r==1)
{
for (j=1;j<=n;j++)
if (!a[i][j])
v[j]=1;
for (j=1;j<=k;j++)
if (v2[b[j]]==-1)
v2[b[j]]=2;
else
if (v2[b[j]]==0)
v2[b[j]]=1;
for (j=k+1;j<=x;j++)
if (v2[b[j]]==1)
v2[b[j]]=2;
else
if (v2[b[j]]==0)
v2[b[j]]=-1;
}
else
{
for (j=1;j<=n;j++)
if (!a[i][j])
v[j]=1;
for (j=1;j<=k;j++)
if (v2[b[j]]==1)
v2[b[j]]=2;
else
if (v2[b[j]]==0)
v2[b[j]]=-1;
for (j=k+1;j<=x;j++)
if (v2[b[j]]==-1)
v2[b[j]]=2;
else
if (v2[b[j]]==0)
v2[b[j]]=1;
}
}
r=1;
x=0;
for (i=1;i<=n;i++)
if (!v[i]&&v2[i]!=2)
{
if (r==0)
{
x=0;
break;
}
x=i;
r=0;
}
fprintf(g,"%d\n",x);
fclose(f);
fclose(g);
return 0;
}