Pagini recente » Cod sursa (job #2693731) | Cod sursa (job #3172273) | Cod sursa (job #1420117) | Cod sursa (job #326050) | Cod sursa (job #28460)
Cod sursa(job #28460)
#include <stdio.h>
#include <string.h>
#define NMAX 1025
FILE *f = fopen("balanta.in","rt"), *g = fopen("balanta.out","wt");
long int L[NMAX],H[NMAX],i,j,k,n,v1[NMAX],v2[NMAX],m,r,hash[NMAX];
void citire()
{
fscanf(f,"%ld %ld",&n,&m);
H[0]=n;
L[0]=n;
for (i=1;i<=n;i++)
{L[i]=1;H[i]=1;}
for (i=1;i<=m;i++)
{
fscanf(f,"%ld",&k);
for (j=1;j<=k;j++) fscanf(f,"%ld",&v1[j]);
for (j=1;j<=k;j++) fscanf(f,"%ld",&v2[j]);
fscanf(f,"%ld",&r);
if (r==1) {
memset(hash,0,sizeof(hash));
for (j=1;j<=k;j++)
hash[v1[j]]=1;
for (j=1;j<=n;j++)
H[j]=H[j]&&hash[j];
memset(hash,0,sizeof(hash));
for (j=1;j<=k;j++)
hash[v2[j]]=1;
for (j=1;j<=n;j++)
L[j]=L[j]&&hash[j];
L[0]=0;H[0]=0;
for (j=1;j<=n;j++)
{
L[0]+=L[j];
H[0]+=H[j];
}
}
if (r==2) {
memset(hash,0,sizeof(hash));
for (j=1;j<=k;j++)
hash[v2[j]]=1;
for (j=1;j<=n;j++)
H[j]=H[j]&&hash[j];
memset(hash,0,sizeof(hash));
for (j=1;j<=k;j++)
hash[v1[j]]=1;
for (j=1;j<=n;j++)
L[j]=L[j]&&hash[j];
L[0]=0;H[0]=0;
for (j=1;j<=n;j++)
{
L[0]+=L[j];
H[0]+=H[j];
}
}
if (r==0) {
for (j=1;j<=k;j++)
{
L[v1[j]]=0;
L[v2[j]]=0;
H[v1[j]]=0;
H[v2[j]]=0;
}
L[0]=0;H[0]=0;
for (j=1;j<=n;j++)
{
L[0]+=L[j];
H[0]+=H[j];
}
}
}
}
int main()
{
citire();
if ((L[0]==1)&&(H[0]==0)) for (i=1;i<=n;i++)
if (L[i]==1) {fprintf(g,"%ld",i);return 0;}
if ((L[0]==0)&&(H[0]==1)) for (i=1;i<=n;i++)
if (H[i]==1) {fprintf(g,"%ld",i);return 0;}
fprintf(g,"0");
return 0;
}