Pagini recente » Atasamentele paginii La capatul lumii | Istoria paginii utilizator/sunbeam | Diferente pentru moisil-2015/naveplanare intre reviziile 8 si 12 | Istoria paginii utilizator/tudy1998 | Cod sursa (job #826632)
Cod sursa(job #826632)
#include<cstdio>
using namespace std;
bool A[27],eval(),term(),num();
char sir[1010],*p,c;
int n,i;
bool eval()
{
bool r=term();
while(*p=='O'&&*(p+1)=='R')
{
p+=3;
r=r|term();
}
return r;
}
bool term()
{
bool r=num();
while(*p=='A'&&*(p+1)!='N')
{
p+=4;
r=r&num();
}
return r;
}
bool num()
{
bool r=0;
if(*p=='(')
{
p++;
r=eval();
p++;
}
else if(*p=='N'&&*(p+1)=='O')
{
p+=4;
r=!num();
}
else if(*p=='T'&&*(p+1)=='R')
{
p+=5;
r=1;
}
else if(*p=='F'&&*(p+1)=='A')
{
p+=6;
r=0;
}
else
{
r=A[*p-'A'];
p+=2;
}
return r;
}
int main()
{
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
gets(sir);
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{
scanf("%c",&c);
A[c-'A']=!A[c-'A'];
p=sir;
printf("%d",eval());
}
return 0;
}