Pagini recente » Cod sursa (job #633648) | Cod sursa (job #1604837) | Cod sursa (job #1363119) | Cod sursa (job #517856) | Cod sursa (job #2619940)
//
// 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;
ifstream cin("bool.in");
ofstream cout("bool.out");
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, 2) == "OR" && i + 1 < s.size()) {
rez |= AND();
i += 2;
}
return rez;
}
bool AND() {
bool rez = NOT();
if (s.substr(i, 3) == "AND" && i + 2 < s.size()) {
rez &= NOT();
i += 3;
}
return rez;
}
bool NOT() {
bool rez;
if (s.substr(i, 3) == " NOT " && i + 2 < s.size()) {
rez = !NOT();
i += 3;
} else
rez = op();
return rez;
}
bool op() {
bool rez;
if (s[i] == '(') {
i++;
rez = OR();
i++;
} else if (s.substr(i, 4) == "TRUE" && i + 3 < s.size()) {
rez = 1;
i += 4;
} else if (s.substr(i , 5) == "FALSE" && i + 4 < s.size()) {
rez = 0;
i += 5;
} else {
rez = v[s[i]];
i++;
}
return rez;
}
int main() {
// auto start = high_resolution_clock::now();
getline(cin, s);
cin >> n;
char c;
while (n != 0) {
cin >> c;
v[c] = !v[c];
i = 0;
cout << OR();
n--;
}
// auto stop = high_resolution_clock::now();
// auto duration = duration_cast<microseconds>(stop - start);
// cout << "Time taken by function: "
// << duration.count() << " microseconds" << endl;
return 0;
}
// auto start = high_resolution_clock::now();
// auto stop = high_resolution_clock::now();
// auto duration = duration_cast<microseconds>(stop - start);
// cout << "Time taken by function: "
// << duration.count() << " microseconds" << endl;
//