Pagini recente » Cod sursa (job #2683099) | Cod sursa (job #423170) | Cod sursa (job #424909) | Cod sursa (job #1356995) | Cod sursa (job #1508921)
#include <stdio.h>
#include <string.h>
using namespace std;
int c[27];
char e[1002],e2[102];
int i,n,lg;
inline bool eMare(char c)
{
if((c>='A')&&(c<='Z')) return 1;
return 0;
}
inline bool eAnd()
{
if(e[i]=='A'&&e[i+1]=='N')return 1;
return 0;
}
inline bool eOr()
{
if(e[i]=='O'&&e[i+1]=='R')return 1;
return 0;
}
inline bool eNot()
{
if(e[i]=='N'&&e[i+1]=='O')return 1;
return 0;
}
inline bool eTrue()
{
if(e[i]=='T'&&e[i+1]=='R')return 1;
return 0;
}
inline bool eFalse()
{
if(e[i]=='F'&&e[i+1]=='A')return 1;
return 0;
}
bool evalExp1();
bool evalExp2();
bool evalExp3();
// dsahsuohsadoiuha
//adsadasdasdasda
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()
{
//adsdashdaushdahd
bool r;
if(e[i]=='(')
{
i++;
r=evalExp1();
i++;
}
//dasdasdasdjaisdiajsoda
else if(eMare(e[i]))
{
if(eNot())
{
i=i+4;
r= !(evalExp3());
}
else if(eTrue())
{ i=i+5;
return 1;
}
//dasdhkuhiuashdiuahdiuhds
else if(eFalse())
{
i=i+6;
return 0;
}
else
{
r=c[e[i]-'A'];
i=i+2;
}
}
return r;
}
int main()
{
//dasdasdasijdaisdoiajdoajsdias
int q;
freopen("bool.in","r",stdin);
freopen("bool.out","w",stdout);
fgets(e,1002,stdin);
scanf("%d",&n);
scanf("%s",e2);
//adasijdaoisdjaosidjaoidjaoisjd
for(q=0;q<n;q++)
{
i=0;
c[e2[q]-'A']=!(c[e2[q]-'A']);
printf("%d",evalExp1());
}
}