Pagini recente » Cod sursa (job #389661) | Cod sursa (job #1039266) | Cod sursa (job #41935) | Cod sursa (job #605530) | Cod sursa (job #2624338)
//
// main.cpp
// C++ - teste
//
// Created by Filip Cuciuc on 03/02/2020.
// Copyright © 2020 Filip Cuciuc. All rights reserved.
//
//#include <iostream>
#include <stdio.h>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
#include <math.h>
#include <map>
#include <string>
#include <cctype>
//#include "MED.h"
using namespace std;
//using namespace std::chrono;
fstream cin("input");ofstream cout("output");
int i, n;
string s, fis;
bool v[260];
bool AND();
bool OR();
bool NOT();
bool op();
bool OR() {
bool rez = AND();
if (s.substr(i, 4) == " OR ") {
i += 4;
rez |= AND();
}
return rez;
}
bool AND() {
bool rez = NOT();
if (s.substr(i, 5) == " AND ") {
i += 5;
rez &= NOT();
}
return rez;
}
bool NOT() {
bool rez;
if (s.substr(i, 4) == "NOT ") {
i += 4;
rez = !NOT();
}
else
rez = op();
return rez;
}
bool op() {
bool rez;
if (s[i] == '(') {
i++;
rez = OR();
i++;
}
else if (s.substr(i, 4) == "TRUE") {
rez = 1;
i += 4;
}
else if (s.substr(i, 5) == "FALSE") {
rez = 0;
i += 5;
}
else {
rez = v[s[i]];
i++;
}
return rez;
}
int main() {
getline(cin, s);
cin >> n;
while (n--) {
char c;
cin >> c;
v[c] = !v[c];
i = 0;
cout << OR();
}
return 0;
}