Pagini recente » Statistici Catruc Ionel (vanya_darkov) | Cod sursa (job #2080131) | Cod sursa (job #2563325) | Cod sursa (job #2083263) | Cod sursa (job #1101047)
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int c[27];
char e[1002],e2[102];
int i,n,lg;
bool eMare(char c)
{
if((c>='A')&&(c<='Z')) return 1;
return 0;
}
bool eAnd()
{
if(e[i]=='A'&&e[i+1]=='N')return 1;
return 0;
}
bool eOr()
{
if(e[i]=='O'&&e[i+1]=='R')return 1;
return 0;
}
bool eNot()
{
if(e[i]=='N'&&e[i+1]=='O')return 1;
return 0;
}
bool eTrue()
{
if(e[i]=='T'&&e[i+1]=='R')return 1;
return 0;
}
bool eFalse()
{
if(e[i]=='F'&&e[i+1]=='A')return 1;
return 0;
}
bool evalExp1();
bool evalExp2();
bool evalExp3();
bool evalExp1()
{
bool r=evalExp2();
while(eOr())
{
i=i+3;
r|=evalExp2();
}
return r;
}
bool evalExp2()
{
bool r=evalExp3();
while(eAnd())
{
i=i+4;
r&=evalExp3();
}
return r;
}
bool evalExp3()
{
bool r;
if(e[i]=='(')
{
i++;
r=evalExp1();
i++;
}
else if(eMare(e[i]))
{
if(eNot())
{
i=i+4;
r= !(evalExp3());
}
else if(eTrue())
{ i=i+5;
return 1;
}
else if(eFalse())
{
i=i+6;
return 0;
}
else
{
r=c[e[i]-'A'];
i=i+2;
}
}
return r;
}
int main()
{
int q;
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
fgets(e,100,stdin);
lg=strlen(e);
scanf("%d",&n);
scanf("%s",e2);
for(q=0;q<n;q++)
{
i=0;
c[e2[q]-'A']=!(c[e2[q]-'A']);
printf("%d",evalExp1());
}
}