Pagini recente » Cod sursa (job #2265984) | Cod sursa (job #2713117) | Cod sursa (job #1149255) | Cod sursa (job #2466938) | Cod sursa (job #720341)
Cod sursa(job #720341)
#include<cstdio>
char a[1005],modif[105]; bool lit[30]; int i;
bool factor2();
bool factor();
bool ff(){
bool v=factor();
while(a[i]=='O' && a[i+1]=='R'){ i+=2; if(a[i]==' ')++i; v|=factor(); }
return v;
}
bool factor(){
bool v=factor2();
while(a[i]=='A' && a[i+1]=='N'){ i+=3; if(a[i]==' ')++i; v&=factor2(); }
return v;
}
bool factor2(){
bool v=0;
if(a[i]=='('){ ++i; v=ff(); ++i; }
else
if(a[i]=='N' && a[i+1]=='O'){ i+=4; v=!factor2(); }
else if(a[i]=='T' && a[i+1]=='R'){ i+=4; v=1; if(a[i]!=')')++i; }
else if(a[i]=='F' && a[i+1]=='A'){ i+=5; v=0; if(a[i]!=')')++i; }
else if(a[i]<='Z' && a[i]>='A'){ v=lit[a[i]-'A']; ++i; if(a[i]!=')')++i; }
return v;
}
int main(void){
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
int n,j;
gets(a);
scanf("%d\n",&n);
gets(modif);
for(j=0;j<n;++j){
lit[modif[j]-'A']=!lit[modif[j]-'A'];
i=0;
printf("%d",ff());
}
return 0;
}