Pagini recente » Cod sursa (job #2303770) | Cod sursa (job #524600) | Cod sursa (job #2555002) | Cod sursa (job #1996999) | Cod sursa (job #1706234)
#include <fstream>
#define NMAX 1005
using namespace std;
ifstream fin("bool.in");
ofstream fout("bool.out");
int n, i;
char x[NMAX], ch, *p;
bool v[27],ev();
bool term(){
bool b=0;
if(*p=='(')p++,b=ev(),p++;
else if(*p=='F'&&*(p+1)=='A') p+=6,b=0;
else if(*p=='T'&&*(p+1)=='R') p+=5,b=1;
else if(*p=='N'&&*(p+1)=='O') p+=4,b=!term();
else b=v[*p-'A'],p+=2;
return b;
}
bool fact(){
bool b=term();
while(*p=='A'&&*(p+1)=='N') p+=4,b=b&term();
return b;
}
bool ev(){
bool b=fact();
while(*p=='O'&&*(p+1)=='R') p+=3,b=b|fact();
return b;
}
int main(){
fin.getline(x,NMAX);
fin>>n;
for(i=1; i<=n; i++)
fin>>ch,v[ch-'A']=!v[ch-'A'],p=x,fout<<ev();
return 0;
}