Pagini recente » Cod sursa (job #1489057) | Cod sursa (job #2458390) | Cod sursa (job #2780080) | Cod sursa (job #1247818) | Cod sursa (job #1914529)
#include <cstdio>
#include <cstring>
using namespace std;
int poz,v1[50],tip;
char sir[1010];
int solve()
{
int sol=0,p=1;
while(sir[poz]!=')')
{
if(sir[poz]==' ') poz++;
else if(sir[poz]=='A' && sir[poz+1]=='N') poz+=3;
else if(sir[poz]=='O' && sir[poz+1]=='R') {sol=sol|p;p=1;poz+=2;}
else
{
int x,t=0;
while(sir[poz]=='N' && sir[poz+1]=='O') {t=!t;poz+=3;}
if(sir[poz]==' ') poz++;
if(sir[poz]=='(') {poz++;x=solve();}
else if(sir[poz]=='T') {x=1;poz+=4;}
else if(sir[poz]=='F') {x=0;poz+=5;}
else if(sir[poz]>='A' && sir[poz]<='Z') {x=v1[sir[poz]-'A'];poz++;}
p=p&(x^t);
}
}
sol=sol|p;
poz++;
return sol;
}
int main()
{
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
int n;
char c;
gets(sir+1);
int l=strlen(sir+1);
sir[++l]=')';
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
{
scanf("%c",&c);
v1[c-'A']=1-v1[c-'A'];
poz=1;
printf("%d",solve());
}
return 0;
}