Pagini recente » Cod sursa (job #2577078) | Cod sursa (job #2500210) | Cod sursa (job #723971) | Cod sursa (job #1411285) | Cod sursa (job #2069106)
#include <cstdio>
using namespace std;
bool aux,val[30];
char *p,s[1005],c;
int n,i,z;
bool eval();
bool termen();
bool factor();
bool eval(){
bool r;
r=termen();
while(*p=='O' && *(p+1)=='R'){p+=3;r=r|termen();}
return r;
}
bool termen(){
bool r;
r=factor();
while(*p=='A' && *(p+1)=='N'){p+=4;r=r&factor();}
return r;
}
bool factor(){
bool r;
r=false;
if(*p=='('){p++;r=eval();p++;}
else if(*p=='T' && *(p+1)=='R'){r=true;p+=5;}
else if(*p=='F' && *(p+1)=='A'){r=false;p+=6;}
else if(*p=='N' && *(p+1)=='O'){p+=4;r=!factor();}
else {if(val[*p-'A']==false)r=false;else r=true;p+=2;}
return r;
}
int main()
{
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
scanf("%c",&c);
while(c!='\n'){s[z++]=c;scanf("%c",&c);}
scanf("%d\n",&n);
for(i=1;i<=n;i++){
scanf("%c",&c);
val[c-'A']=!val[c-'A'];
p=s;
aux=eval();
if(aux)printf("1");
else printf("0");
}
return 0;
}