Pagini recente » Cod sursa (job #2054786) | Cod sursa (job #2080778) | Cod sursa (job #2042275) | Cod sursa (job #822521) | Cod sursa (job #2265055)
#include <fstream>
#include <vector>
#include <bitset>
#include <unordered_map>
#include <algorithm>
#include <queue>
#include <math.h>
#include <iomanip>
#include <stack>
using namespace std;
ifstream cin("bool.in");
ofstream cout("bool.out");
string s;
int val[300];
int i = 0;
int factor();
int termen();
int eval()
{
int r = termen();
while(s[i] == 'O' && s[i + 1] == 'R')
{
i += 2;
r |= factor();
}
return r;
}
int factor()
{
int r = termen();
while(s[i] == 'A' && s[i + 1] == 'N' && s[i + 2] == 'D')
{
i += 3;
r &= termen();
}
return r;
}
int termen()
{
if(s[i] == '(')
{
i++;
eval();
i++;
if(s[i] == ' ')
i++;
}
if(s[i] == 'N' && s[i + 1] == 'O' && s[i + 2] == 'T')
{
i += 3;
return !termen();
}
i += 2;
if(s[i] == ' ')
i++;
return val[s[i - 2]];
}
main()
{
getline(cin, s);
int n;
cin >> n;
while(n--)
{
char c;
cin >> c;
val[c] ^= 1;
i = 0;
cout << eval();
}
}