Pagini recente » Cod sursa (job #3142385) | Cod sursa (job #60553) | Cod sursa (job #1225022) | Cod sursa (job #3004892) | Cod sursa (job #3216132)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bool.in");
ofstream fout ("bool.out");
int i, n, freq[100];
char s[1001], x;
bool expresie();
bool termen();
bool constanta();
bool expresie()
{
bool r = termen();
i ++;
while ((s[i] == 'A' && s[i + 1] == 'N') || (s[i] == 'O' && s[i + 1] == 'R'))
{
if (s[i] == 'A' && s[i + 1] == 'N')
{
i += 4;
r &= termen();
}
else if (s[i] == 'O' && s[i + 1] == 'R')
{
i += 3;
r |= termen();
}
}
return r;
}
bool termen()
{
bool r;
if (s[i] == '(')
{
i ++;
r = expresie();
i ++;
}
else
r = constanta();
return r;
}
bool constanta()
{
bool r = 1;
if (freq[s[i]]) r = !r;
if (s[i] == 'N' && s[i + 1] == 'O')
r = !r, i += 4;
return r;
}
int main()
{
fin.getline(s, 1001);
fin >> n;
while (n)
{
fin >> x;
if (freq[int(x) - 'A']) freq[(int)x - 'A'] --;
else
freq[(int)x - 'A'] ++;
fout << expresie();
n --;
}
return 0;
}