Pagini recente » Cod sursa (job #1701353) | Cod sursa (job #1029193) | Cod sursa (job #725611) | Cod sursa (job #1144851) | Cod sursa (job #1027786)
#include<cstdio>
char s[1001],c;
int v[40],i,n,u,j;
FILE *f,*g;
int op2();int op3();
int op1(){
int r=op2();
while(s[i]=='O'&&s[i+1]=='R'){
i+=2;
r|=op2();
}
return r;
}
int op2(){
int r=op3();
while(s[i]=='A'&&s[i+1]=='N'){
i+=3;
r&=op3();
}
return r;
}
int op3(){
if(s[i]=='('){
++i;
int r=op1();
++i;
return r;
}
if (s[i]=='N'&&s[i+1]=='O'&&s[i+2]=='T'){
i+=3;
return !op3();
}
if (s[i]=='T' && s[i+1]=='R'){
i+=4;
return 1;
}
if (s[i]=='F' && s[i+1]=='A'&&s[i+2]=='L'){
i+=5;
return 0;
}
i++;
return v[s[i-1]-'A'];
}
int main(){
f=fopen("bool.in","r");
g=fopen("bool.out","w");
while (1){
fscanf(f,"%c",&c);
if(c==' ') continue;
if(c=='\n') break;
s[u++]=c;
}
fscanf(f,"%d\n",&n);
for (int j=1; j<=n; j++){
fscanf(f,"%c",&c);
v[c-'A']=v[c-'A']^1;
i=0;
fprintf(g,"%d",op1());
}
fclose(f);
fclose(g);
return 0;
}