Pagini recente » Cod sursa (job #2842653) | Cod sursa (job #2927344) | Cod sursa (job #3183886) | Cod sursa (job #1462469) | Cod sursa (job #471348)
Cod sursa(job #471348)
#include <cstdio>
#define N 1024
int n, s[N];
char a[N];
char *p;
int sau ();
int si ();
int f ();
int sau ()
{
int ret = si ();
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);
// fflush (stdout);
while (n--)
{
char c;
scanf ("%c", &c);
// printf ("_(%c)_", c);
s[c - 'A'] = ! s[c- 'A'];
p = a;
printf ("%d", sau ());
}
return 0;
}