Pagini recente » Cod sursa (job #831445) | Cod sursa (job #1736765) | Cod sursa (job #596650) | Cod sursa (job #1863584) | Cod sursa (job #403835)
Cod sursa(job #403835)
#include<stdio.h>
#include<string.h>
#define DIM 1025
int a[DIM],b[DIM],u[DIM],g[DIM];
int i,j,r,m,n,poz,x,y,k;
int main(){
FILE* f=fopen("balanta.in","r");
FILE* G=fopen("balanta.out","w");
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;i++){
u[i]=1;
g[i]=1;
}
for(k=1;k<=m;k++){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
fscanf(f,"%d",&x);
for(j=1;j<=x;j++){
fscanf(f,"%d",&y);
a[y]=1;
}
for(j=1;j<=x;j++){
fscanf(f,"%d",&y);
b[y]=1;
}
fscanf(f,"%d",&r);
if(r==0){
for (i=1;i<=n;i++)
if (a[i] == 1 || b[i] == 1)
u[i] = g[i] = 0;
}
if (r==1) {
for (i=1;i<=n;i++) {
// aici trebuia facuta efectiv intersectia, adica se pune 1 daca
//ambele sunt 1, altfel se pune 0
if (a[i]==1 && u[i]==1)
u[i] = 1;
else
u[i] = 0;
if (b[i]==1 && g[i]==1)
g[i] = 1;
else
g[i] = 0;
}
}
if (r==2) {
for (i=1;i<=n;i++) {
if (b[i]==1 && u[i]==1)
u[i] = 1;
else
u[i] = 0;
if (a[i]==1 && g[i]==1)
g[i] = 1;
else
g[i] = 0;
}
}
}
x = 0;
for (i=1;i<=n;i++) {
if (u[i]) {
x++;
poz = i;
}
if (g[i]) {
x++;
poz = i;
}
}
if (x==1)
fprintf(G,"%d",poz);
else
fprintf(G,"0");
fclose(f);
fclose(G);
return 0;
}