Pagini recente » Cod sursa (job #2291524) | Cod sursa (job #2597359) | Cod sursa (job #2146282) | Cod sursa (job #1560564) | Cod sursa (job #720797)
Cod sursa(job #720797)
#include<cstdio>
char a[1005],modif[105]; bool lit[30]; int i;
bool factor2();
bool factor();
bool ff(){
bool v=factor();
if(a[i]==' '){ ++i; v=ff(); }
else
while(a[i]=='O' && a[i+1]=='R'){ i+=2; v|=factor(); }
return v;
}
bool factor(){
bool v=factor2();
if(a[i]==' '){ ++i; v=factor(); }
else
while(a[i]=='A' && a[i+1]=='N'){ i+=3; v&=factor2(); }
return v;
}
bool factor2(){
bool v=0;
if(a[i]==' '){ ++i; v=factor2(); }
else
if(a[i]=='('){ ++i; v=ff(); ++i; }
else
if(a[i]=='N' && a[i+1]=='O'){ i+=3; v=!factor2(); }
else if(a[i]=='T' && a[i+1]=='R'){ i+=4; v=1; }
else if(a[i]=='F' && a[i+1]=='A'){ i+=5; v=0; }
else if(a[i]<='Z' && a[i]>='A'){ v=lit[a[i]-'A']; ++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;
}