Pagini recente » Cod sursa (job #412078) | Cod sursa (job #1179189) | Cod sursa (job #1503717) | Cod sursa (job #1204713) | Cod sursa (job #1116514)
#include<cstdio>
using namespace std;
int C, i, n, A[300];
char sir[100009];
int termen();
int evalor();
int evaland();
int evaland()
{
int X=termen();
while(sir[i+1]=='A' && sir[i+2]=='N' && sir[i+3]=='D')
{
i+=5;
X&=termen();
}
return X;
}
int evalor()
{
int X=evaland();
while(sir[i+1]=='O'&&sir[i+2]=='R')
{
i+=4;
X|=evaland();
}
return X;
}
int termen()
{
int v=0;
if(sir[i]=='N'&&sir[i+1]=='O')
{
i+=4;
return (!termen());
}
if(sir[i]=='(')
{
i++;
v=evalor();
i++;
return v;
}
if(sir[i]=='T'&&sir[i+1]=='R')
{
i+=4;
return 1;
}
if(sir[i]=='F'&&sir[i+1]=='A')
{
i+=5;
return 0;
}
if(sir[i]>='A'&&sir[i]<='Z')
{
v=A[sir[i]];
i++;
return v;
}
}
int main()
{
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
gets(sir+1);
scanf("%d\n",&n);
while(n)
{
n--;
scanf("%c",&C);
A[C]^=1;
i=1;
printf("%d",evalor());
}
return 0;
}