Pagini recente » Cod sursa (job #1042) | Cod sursa (job #2119887) | Cod sursa (job #1246489) | Cod sursa (job #1412824) | Cod sursa (job #2271041)
#include <bits/stdc++.h>
using namespace std;
char c[1005],*p,a;
bool b[300];
int n,i;
int eval();
int termen();
int factor()
{
int r=0;
if(*p=='(')
{
p++;
eval();}
else {r=b[*p];p+=2;}
return r;
}
int termen()
{
int r=factor();
while((*p=='A'&&*(p+1)=='N')||(*p=='N'&&*(p+1)=='O'))
{
if(*p=='A'&&*(p+1)=='N')
r=r&factor();
else r=!r;
p+=4;
}
return r;
}
int eval()
{
int r=termen();
while(*p=='O'&&*(p+1)=='R')
{
r=r|termen();
p+=3;
}
return r;
}
ifstream f("bool.in");
ofstream g("bool.out");
int main()
{
f.getline(c,1003);
f>>n;
for(i=1;i<=n;i++)
{
f>>a;
p=c;
b[a]=!b[a];
g<<eval();
}
return 0;
}