Pagini recente » Cod sursa (job #821950) | Cod sursa (job #2420810) | Cod sursa (job #2123689) | Cod sursa (job #692093) | Cod sursa (job #2111786)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
char s[1005];
int val[30],numar;
int fct(int st,int dr)
{
int nr=0;
for(int i=dr;i>st;i--)
if(nr==0&&s[i]=='R'&&s[i-1]=='O')
return (fct(st,i-2)||fct(i+1,dr));
else
if(s[i]==')')
nr--;
else
if(s[i]=='(')
nr++;
nr=0;
for(int i=dr;i>st+1;i--)
if(nr==0&&s[i]=='D'&&s[i-1]=='N')
return (fct(st,i-3)&&fct(i+1,dr));
else
if(s[i]==')')
nr--;
else
if(s[i]=='(')
nr++;
if(s[st]=='('&&s[dr]==')')
return fct(st+1,dr-1);
if(s[st]=='N'&&s[st+1]=='O')
return !(fct(st+3,dr));
while(s[st]==' ')
st++;
while(s[dr]==' ')
dr--;
if(st!=dr)
{
if(s[st]=='T')
return 1;
return 0;
}
return val[s[st]-'A'];
}
int main()
{
int n,nr;
ifstream fin("bool.in");
ofstream fout("bool.out");
fin.getline(s,1005);
nr=strlen(s);
fin>>n;
for(int i=0;i<n;++i)
{
char x;
fin>>x;
if(val[x-'A'])
val[x-'A']=0;
else
val[x-'A']=1;
fout<<fct(0,nr-1);
}
return 0;
}