Pagini recente » Cod sursa (job #2653772) | Cod sursa (job #2679464) | Cod sursa (job #87050) | Cod sursa (job #1848887) | Cod sursa (job #1047324)
#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;
}