Pagini recente » Istoria paginii runda/oni201311-12ziua1 | Cod sursa (job #566820) | Cod sursa (job #354631) | Cod sursa (job #1796889) | Cod sursa (job #1027780)
#include<cstdio>
#include<cstring>
int n,i,j,v[40],u;
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(){
if(s[j]=='('){
++j;
int r=op1();
++j;
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");
while (1)
{
scanf("%c", &c);
if (c==' ') continue;
if(c == '\n') break;
s[u++] = c;
}
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;
}