Pagini recente » Cod sursa (job #2000964) | Cod sursa (job #496043) | Solutii preONI 2008, Runda 3 | Cod sursa (job #2074558) | Cod sursa (job #403820)
Cod sursa(job #403820)
#include <stdio.h>
#include <string.h>
FILE*f = fopen("balanta.in","r");
FILE*h = fopen("balanta.out","w");
char a[1048],b[1048],u[1048],g[1048];
int i, j, n, cardu,cardg,x,k,m,r,poz;
int main() {
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;i++){
u[i]=1;
g[i]=1;
}
//cardu=n;
//cardg=n;
for(i=1;i<=m;i++){
fscanf(f,"%d",&k);
for(j=1;j<=k;j++){
fscanf(f,"%d",&x);
a[x]=1;
}
for(j=1;j<=k;j++){
fscanf(f,"%d",&x);
b[x]=1;
}
fscanf(f,"%d",&r);
if(r==0){
for(j=1;j<=n;j++){
if(u[j]==a[j])
u[j]=0;
if(g[j]==a[j])
g[j]=0;
if(u[j]==b[j])
u[j]=0;
if(g[j]==b[j])
g[j]=0;
}
//cardu-=k*2;
//cardg-=k*2;
}else if(r==1){
for(j=1;j<=n;j++){
if(g[j]==1 && a[j]==1)
g[j]=1;
else
g[j] = 0;
if(u[j]==1 && b[j]==1)
u[j]=1;
else
u[j] = 0;
}
// cardu-=k;
//cardg-=k;
}else if(r==2){
for(j=1;j<=n;j++){
if(u[j]==1 && a[j]==1)
u[j]=1;
else
u[j] = 0;
if(g[j]==1 && b[j]==1)
g[j]=1;
else
g[j] = 0;
}
//cardu-=k;
//cardg-=k;
}
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
}
x = 0;
for (i=1;i<=n;i++) {
if (u[i]==1){
x++;
poz = i;
}
if (g[i]==1){
x++;
poz = i;
}
}
if (x==1) {
fprintf(h,"%d",poz);
} else
fprintf(h,"0");
/*
if(cardu>1&&cardg>1){
fprintf(h,"0");
} else {
if(cardu==1){
for(i=1;i<=n;i++){
if(u[i]==1)
fprintf(h,"%d",i);
}
}else if(cardg==1){
for(i=1;i<=n;i++){
if(g[i]==1)
fprintf(h,"%d",i);
}
}
}
*/
fclose(f);
fclose(h);
return 0;
}