Pagini recente » Cod sursa (job #303303) | Cod sursa (job #31711) | Cod sursa (job #404308) | Cod sursa (job #303143) | Cod sursa (job #25059)
Cod sursa(job #25059)
#include <stdio.h>
int n,m,a[2100],u[2100][2100],g[2100][2100],truths,poz;
void citire(void)
{
int i,j,k,x;
FILE *f=fopen("balanta.in","r");
fscanf(f,"%d %d ",&n,&m);
for(i=1;i<=m;i++) for(j=1;j<=n;j++) { u[i][j]=0; g[i][j]=0; }
for(i=1;i<=m;i++)
{
fscanf(f,"%d",&k);
for(j=1;j<=k;j++)
{
fscanf(f,"%d",&x);
u[i][x]=2;
g[i][x]=1;
}
for(j=1;j<=k;j++)
{
fscanf(f,"%d",&x);
u[i][x]=1;
g[i][x]=2;
}
fscanf(f,"%d",&x);a[i]=x; // the real thing that happens ..
}
}
void print(void)
{
int i,j;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++) printf("%d ",u[i][j]);
printf("\n");
}
printf("\n\n");
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++) printf("%d ",g[i][j]);
printf("\n");
}
printf("\n\n");
}
void output(int poz)
{
FILE *f=fopen("balanta.out","w");
if(truths!=1) poz=0;
fprintf(f,"%d\n",poz);
fclose(f);
}
int main(void)
{
int i,j,vf_u,vf_g;
citire();
// print();
for(j=1;j<=n;j++)
{
vf_u=1;vf_g=1;
for(i=1;i<=m;i++)
if(u[i][j]!=a[i]) vf_u=0;
for(i=1;i<=m;i++)
if(g[i][j]!=a[i]) vf_g=0;
if(vf_u || vf_g) { truths++;poz=j; }
}
output(poz);
return 0;
}