Pagini recente » Cod sursa (job #1508746) | Cod sursa (job #1055546) | Cod sursa (job #2412972) | Cod sursa (job #2238495) | Cod sursa (job #201722)
Cod sursa(job #201722)
#include<cstdio>
char s[1100],chr;
long i,n,j;
bool a[50];
bool expr();
bool term();
bool elem();
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;
r=r && elem();
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++;
}
if(s[i]=='F' && s[i+1]!=' '){
r=0;
i+=5;
if(s[i]==' ')i++;
}
if(s[i]=='('){
i++;
r=expr();
i++;
if(s[i]==' ')i++;
}
if(s[i]=='N' && s[i+1]!=' '){
i+=4;
j=(long)(s[i]-'A');
r=!(a[j]);
i++;
if(s[i]==' ')i++;
}
if(s[i]!=')' && 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;
}