Pagini recente » Cod sursa (job #80223) | Cod sursa (job #1028983) | Cod sursa (job #757752) | Cod sursa (job #1313829) | Cod sursa (job #2682184)
#include <fstream>
#define NMAX 1005
using namespace std;
ifstream cin("bool.in");
ofstream cout("bool.out");
char s[NMAX], v[105],*p;
bool x[105];
int n;
int termen();
int factor();
int eval()
{
bool rez=termen();
while(*p =='O' && *(p+1)=='R')
{
p+=3;
rez =rez || termen();
}
return rez;
}
int termen()
{
bool rez = factor();
while(*p=='A' && *(p+1)=='N' && *(p+2)=='D')
{
p+=4;
rez=rez && factor();
}
return rez;
}
int factor()
{
bool rez ;
if(*p=='N' && *(p+1)=='O' && *(p+2)=='T')
{
p+=4;
rez=!(factor());
}
else
if(*p=='(')
p++,rez=eval(),p+=2;
else
{
if(isalpha(*p))
if(!isdigit(*(p+1)))
{
rez=x[*p-'A'];
p+=2;
}
else
if(*p=='T')
rez=1, p+=5;
else
rez=0, p+=6;
}
return rez;
}
int main()
{
cin.getline(s,1005);
cin >> n;
cin >> v;
for(char *p1=v;*p1!=0;p1++)
{
x[*p1-'A']=!x[*p1-'A'];
p=s;
cout<<eval();
}
}