Pagini recente » Cod sursa (job #1599303) | Cod sursa (job #2748184) | Cod sursa (job #2588838) | Cod sursa (job #3178275) | Cod sursa (job #2114724)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("bool.in");
ofstream g("bool.out");
char s[10005], *p, vall[30], x;
int n;
int si();
int val();
int sau()
{
int r=si();
while(*p=='O' && *(p+1)=='N')
{
p+=3;
r|=si();
}
return r;
}
int si()
{
int r=val();
while(*p=='A' && *(p+1)=='N')
{
p+=4;
r&=val();
}
return r;
}
int val()
{
int r=0;
if(*p=='(')
{
p++;
r=sau();
p++;
}
else
if(*p=='T' && *(p+1)=='R')
{
r=1;
p+=5;
}
else
if(*p=='F' && *(p+1)=='A')
{
r=0;
p+=6;
}
else
if(*p=='N' && *(p+1)=='O')
{
p+=4;
r=!val();
}
else
{
r=vall[*p-'A'];
p+=2;
}
return r;
}
int main()
{
f.getline(s, 10002);
f>>n;
for(int i=0; i<n; i++)
{
f>>x;
p=s;
if(vall[x-'A']==0)
vall[x-'A']=1;
else
vall[x-'A']=0;
g<<sau();
}
return 0;
}