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