Pagini recente » Cod sursa (job #2356122) | Cod sursa (job #490413) | Cod sursa (job #1545125) | Cod sursa (job #2336600) | Cod sursa (job #1080953)
#include<stdio.h>
#define DIM 1030
FILE *f=fopen("balanta.in","r"), *g=fopen("balanta.out","w");
long int n, m, r, k, kk, v[DIM], cit[DIM], v2[DIM];
// v = 0, nu stiu nimic
// v = 1, sigur e bun
// v = 2, daca e fals, sigur e mai greu
// v = 3, daca e fals, sigur e mai usor
// v2= ce urmeaza sa pun,
void rezolvare(){
long int i, j;
fscanf(f,"%ld %ld\n",&n,&m);
for(i=1;i<=m;i++){
fscanf(f,"%ld\n",&k); kk=k*2;
for(j=1;j<=kk;j++){
fscanf(f,"%ld",&cit[j]);
}
fscanf(f,"%ld",&r);
if(r==0){ // toate cele citite sunt bune
for(j=1;j<=kk;j++){
v[ cit[j] ]=1;
}
}
else{
for(j=1;j<=n;j++){v2[j]=0;} // initializare v2
if(r==1){ for(j=1; j<=k; j++) v2[ cit[j] ]=3;
for(j=k+1;j<=kk;j++) v2[ cit[j] ]=2; }
if(r==2){ for(j=1; j<=k; j++) v2[ cit[j] ]=2;
for(j=k+1;j<=kk;j++) v2[ cit[j] ]=3; }
for(j=1;j<=n;j++){
if( v2[j]==0 ){ v[j]=1; }
else if( (v2[j]==2 && v[j]==3) || (v2[j]==3 && v[j]==2) ){ v[j]=1; }
else if( v[j]!=1 ){ v[j]=v2[j]; }
}
}
}
}
void verificare(){
long int i, last=0, nr_bune=0;
for(i=1;i<=n;i++){
if(v[i]==1){nr_bune++;}
else{last=i;}
}
if(nr_bune==n-1){fprintf(g,"%ld\n",last);}
else{fprintf(g,"0");}
}
int main(){
rezolvare(); fclose(f);
verificare();fclose(g);
return 0;
}