Cod sursa(job #2265118)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 20 octombrie 2018 16:41:34
Problema Bool Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#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 AND();
int NOT();
	
int OR()
{
	int r = AND();
	
	while(s[i] == 'O' && s[i + 1] == 'R')
	{
		i += 2;
		r |= AND();
	}
	return r;
}
	
int AND()
{
	int r = NOT();
	
	while(s[i] == 'A' && s[i + 1] == 'N' && s[i + 2] == 'D')
	{
		i += 3;
		r &= NOT();
	}
	return r;
}
	
int NOT()
{
	if(s[i] == '(')
	{
		i++;
		OR();
		i++;
		
		if(s[i] == ' ')
			i++;
	}
	
	if(s[i] == 'N' && s[i + 1] == 'O' && s[i + 2] == 'T')
	{
		i += 3;
		return !NOT();
	}
	
	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 << OR();
	}
}