Pagini recente » Cod sursa (job #1737571) | Cod sursa (job #1317543) | Cod sursa (job #2528514) | Cod sursa (job #2226768) | Cod sursa (job #1027508)
#include <fstream>
using namespace std;
char c;
char s[1001];
int status[40];
int i,n,u;
int pr2();int pr3();
int pr1 ()
{
int res = pr2 ();
while (s[i]=='O'&&s[i+1]=='R')
{
i+=2;
res |= pr2();
}
return res;
}
int pr2 ()
{
int res = pr3 ();
while (s[i]=='A'&&s[i+1]=='N')
{
i+=3;
res &= pr3();
}
return res;
}
int pr3 ()
{
if (s[i]=='(')
{
++i;
int res = pr1();
++i;
return res;
}
if (s[i]=='N' && s[i+1]=='O'&&s[i+2]=='T') {i+=3; return !pr3();}
if (s[i]=='T' && s[i+1]=='R') {i+=4; return 1;}
if (s[i]=='F' && s[i+1]=='A'&&s[i+2]=='L') {i+=5; return 0;}
++i; return status [s[i-1]-'A'];
}
int main()
{
freopen("bool.in", "r", stdin);
freopen("bool.out", "w", stdout);
while (1)
{
scanf("%c", &c);
if (c==' ') continue;
if(c == '\n') break;
s[u++] = c;
}
scanf ("%d\n",&n);
for (int j=1; j<=n; j++)
{
scanf ("%c",&c);
status [c-'A'] = status[c-'A']^1;
i = 0;
printf ("%d",pr1());
}
return 0;
}