Pagini recente » Cod sursa (job #871855) | Cod sursa (job #1909791) | Cod sursa (job #2593997) | Cod sursa (job #2711571) | Cod sursa (job #1027779)
#include<cstdio>
#include<cstring>
int n,i,j,v[28];
char s[1010],c;
int op2();
int op3();
int op1(){
int r=op2();
if(s[j]=='O'&&s[j+1]=='R'){
j+=2;
r|=op2();
}
return r;
}
int op2(){
int r=op3();
if(s[j]=='A'&&s[j+1]=='N'&&s[j+2]=='D'){
j+=3;
r&=op3();
}
return r;
}
int op3(){
int r;
if(s[j]=='('){
j++;
r=op1();
return r;
}
if(s[j]=='N'&&s[j+1]=='O'&&s[j+2]=='t'){
j+=3;
return !op3();
}
if(s[j]=='T'&&s[j+1]=='R'&&s[j+2]=='U'&&s[j+3]=='E'){
j+=4;
return 1;
}
if(s[j]=='F'&&s[j+1]=='A'&&s[j+2]=='L'&&s[j+3]=='S'&&s[j+4]=='e'){
j+=5;
return 0;
}
j++;
return v[s[j-1]-'A'];
}
FILE *f,*g;
int main(){
f=fopen("bool.in","r");
g=fopen("bool.out","w");
fgets(s,2000,f);
fscanf(f,"%d\n",&n);
for(i=0;i<n;i++){
fscanf(f,"%c",&c);
v[c-'A']=v[c-'A']^1;
j=0;
fprintf(g,"%d",op1());
}
fclose(f);
fclose(g);
return 0;
}