Pagini recente » Cod sursa (job #607579) | Tembelizor | Autentificare | Cod sursa (job #382092) | Cod sursa (job #201743)
Cod sursa(job #201743)
#include<cstdio>
char s[1100],chr;
long i,n,j;
bool a[50];
bool expr();
bool term();
bool elem();
bool no();
bool expr(){
bool r=term();
while(s[i]=='O' && s[i+1]!=' '){
i+=3;
j=term();
r=j || r;
if(s[i]==' ')i++;
}
return r;
}
bool term(){
bool r=elem();
while(s[i]=='A' && s[i+1]!=' '){
i+=4;
j=elem();
r=r && j;
if(s[i]==' ')i++;
}
return r;
}
bool no(){
bool r=elem();
while(s[i]=='N' && s[i+1]!=' '){
i+=4;
j=elem();
r=!j;
if(s[i]==' ')i++;
}
return r;
}
bool elem(){
bool r=0;
if(s[i]=='T' && s[i+1]!=' '){
i+=4;
r=1;
if(s[i]==' ')i++;
}
else if(s[i]=='F' && s[i+1]!=' '){
r=0;
i+=5;
if(s[i]==' ')i++;
}
else if(s[i]=='('){
i++;
r=expr();
i++;
if(s[i]==' ')i++;
}
else if(s[i]=='N' && s[i+1]!=' '){
i+=4;
r=!no();
}
else if(s[i]!=')' && (s[i+1]==' ' || s[i+1]==')')){
j=(long)(s[i]-'A');
r=a[j];
i++;
if(s[i]==' ')i++;
}
return r;
}
int main(){
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
scanf("%c",&chr);
j=0;
while(chr!='\n'){
s[j++]=chr;
scanf("%c",&chr);
}
scanf("%ld\n",&n);
for(;n>0;n--){
scanf("%c",&chr);
j=(long)(chr-'A');
a[j]=!(a[j]);
i=0;
printf("%ld",expr());
}
fclose(stdin);
fclose(stdout);
return 0;
}