Pagini recente » Cod sursa (job #636734) | Cod sursa (job #195435) | Cod sursa (job #887881) | Cod sursa (job #1504395) | Cod sursa (job #2100320)
#include <fstream>
using namespace std;
ifstream f("bool.in");
ofstream g("bool.out");
char c,s[100000],*p;
int q,i,v[30];
bool si();
bool sau();
bool val();
int main()
{
f.getline(s,100000);
f>>q;
for(i=1;i<=q;i++)
{
f>>c;
p=s;
if(v[c-'A']==0) v[c-'A']=1;
else v[c-'A']=0;
g<<sau();
}
return 0;
}
bool sau()
{
bool r=si();
while(*p=='O'&&*(p+1)=='R')
{
p=p+3;
r=r|si();
}
return r;
}
bool si()
{
bool r=val();
while(*p=='A' && *(p+1)=='N')
{
p=p+4;
r=r&val();
}
return r;
}
bool val()
{
bool r;
if(*p=='(') {
p++;
r=sau();
p++;
}
else if(*p=='T'&&*(p+1)=='R')
{r=1;
p=p+5;}
else if(*p=='F'&&*(p+1)=='A')
{
r=0;
p=p+6;
}
else if(*p=='N'&&*(p+1)=='O')
{
p=p+4;
r=!val();
}
else {
r=v[*p-'A'];
p=p+2;}
return r;
}