Pagini recente » Cod sursa (job #1226390) | Cod sursa (job #2658659) | Cod sursa (job #1324603) | Cod sursa (job #139241) | Cod sursa (job #303156)
Cod sursa(job #303156)
#include<algorithm>
using namespace std;
#define DIM 1001
int n,lg,alf[31];
char s[DIM],aux[DIM],*p;
int eval1();
int eval2();
int eval0(){
int rez=eval1();
while(*p=='O'&&*(p+1)=='R'){
p+=3;
rez|=eval1();}
return rez;}
int eval1(){
int rez=eval2();
while(*p=='A'&&*(p+1)=='N'){
p+=4;
rez&=eval2();}
return rez;}
int eval2(){
int rez;
if(*p=='N'&&*(p+1)=='O'){
p+=4;
rez=!eval0();}
else if(*p=='T'&&*(p+1)=='R'){
p+=5;
rez=1;}
else if(*p=='F'&&*(p+1)=='A'){
p+=6;
rez=0;}
else if(*p=='('){
++p;
rez=eval0();
++p;}
else{
rez=alf[*p-'A'];
p+=2;}
return rez;}
void solve(){
int i;
char ch;
gets(s);
scanf("%d\n",&n);
for(i=0; i<n; ++i){
scanf("%c",&ch);
alf[ch-'A']=!alf[ch-'A'];
p=s;
printf("%d",eval0());}}
int main(){
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
solve();
return 0;}