Pagini recente » Cod sursa (job #885332) | Cod sursa (job #1247899) | Cod sursa (job #2087226) | Cod sursa (job #2945007) | Cod sursa (job #471347)
Cod sursa(job #471347)
#include <cstdio>
#define N 1024
int n, s[N];
char a[N], *p;
int sau ();
int si ();
int f ();
int sau ()
{
int ret = sau ();
while (*p == 'O' && (*p + 1) == 'R')
p += 3,
ret |= si ();
return ret;
}
int si ()
{
int ret = f ();
while (*p == 'A' && *(p + 1) == 'N')
p += 4,
ret &= f ();
return ret;
}
int f ()
{
int ret = 0;
if (*p == 'N' && *(p + 1) == 'O')
p += 4,
ret |= !f ();
else if (*p == 'T' && *(p + 1) == 'R')
p += 5,
ret = 1;
else if (*p == 'F' && *(p + 1) == 'A')
p += 6,
ret = 0;
else if (*p == '(')
++p,
ret = sau (),
++p;
else ret = s[*p - 'A'],
p += 2;
return ret;
}
int main ()
{
freopen ("bool.in", "r", stdin);
freopen ("bool.out", "w", stdout);
gets (a);
scanf ("%d\n", &n);
// printf ("alol");
for (int i = 0; i < n; ++i)
{
char c;
scanf ("%c", &c);
// printf ("_%c_", c);
s[c - 'A'] = ! s[c- 'A'];
p = a;
printf ("%d", sau ());
}
return 0;
}