Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- using ll = long long;
- using ld = long double;
- int main()
- {
- ll n;
- cin >> n;
- vector<char> z1(n);
- vector<pair<char, char>> z2;
- map<char, char> aux;
- for (int i = 0; i < n; i++)
- {
- cin >> z1.at(i);
- }
- char x;
- ll ww = 0;
- while (cin >> x)
- {
- if (x >= 'A' && x <= 'Z')
- {
- if (aux[x] != 'A' && aux[x] != 'T')
- {
- aux[x] = z1.at(ww);
- z2.push_back({x, aux[x]});
- ww += 1;
- }
- else
- {
- z2.push_back({x, aux[x]});
- }
- }
- else if (x == '*')
- {
- char a1, a2;
- a1 = z2.at(z2.size() - 1).second;
- a2 = z2.at(z2.size() - 2).second;
- z2.pop_back();
- z2.pop_back();
- if (a1 == 'T' && a2 == 'T')
- {
- z2.push_back({'W', a1});
- }
- else
- {
- z2.push_back({'W', 'F'});
- }
- }
- else if (x == '+')
- {
- char a1, a2;
- a1 = z2.at(z2.size() - 1).second;
- a2 = z2.at(z2.size() - 2).second;
- z2.pop_back();
- z2.pop_back();
- if (a1 == 'T' || a2 == 'T')
- {
- z2.push_back({'W', 'T'});
- }
- else
- {
- z2.push_back({'W', 'F'});
- }
- }
- else
- {
- char a1;
- a1 = z2.at(z2.size() - 1).second;
- z2.pop_back();
- if (a1 == 'T')
- {
- z2.push_back({'W', 'F'});
- }
- else
- {
- z2.push_back({'W', 'T'});
- }
- }
- }
- cout << z2.at(0).second << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment