T3000

Untitled

May 22nd, 2022
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. using ll = long long;
  5. using ld = long double;
  6.  
  7. int main()
  8. {
  9.     ll n;
  10.     cin >> n;
  11.     vector<char> z1(n);
  12.     vector<pair<char, char>> z2;
  13.     map<char, char> aux;
  14.     for (int i = 0; i < n; i++)
  15.     {
  16.         cin >> z1.at(i);
  17.     }
  18.     char x;
  19.     ll ww = 0;
  20.     while (cin >> x)
  21.     {
  22.         if (x >= 'A' && x <= 'Z')
  23.         {
  24.             if (aux[x] != 'A' && aux[x] != 'T')
  25.             {
  26.                 aux[x] = z1.at(ww);
  27.                 z2.push_back({x, aux[x]});
  28.                 ww += 1;
  29.             }
  30.             else
  31.             {
  32.                 z2.push_back({x, aux[x]});
  33.             }
  34.         }
  35.         else if (x == '*')
  36.         {
  37.             char a1, a2;
  38.             a1 = z2.at(z2.size() - 1).second;
  39.             a2 = z2.at(z2.size() - 2).second;
  40.             z2.pop_back();
  41.             z2.pop_back();
  42.             if (a1 == 'T' && a2 == 'T')
  43.             {
  44.                 z2.push_back({'W', a1});
  45.             }
  46.             else
  47.             {
  48.                 z2.push_back({'W', 'F'});
  49.             }
  50.         }
  51.         else if (x == '+')
  52.         {
  53.             char a1, a2;
  54.             a1 = z2.at(z2.size() - 1).second;
  55.             a2 = z2.at(z2.size() - 2).second;
  56.             z2.pop_back();
  57.             z2.pop_back();
  58.             if (a1 == 'T' || a2 == 'T')
  59.             {
  60.                 z2.push_back({'W', 'T'});
  61.             }
  62.             else
  63.             {
  64.                 z2.push_back({'W', 'F'});
  65.             }
  66.         }
  67.         else
  68.         {
  69.             char a1;
  70.             a1 = z2.at(z2.size() - 1).second;
  71.             z2.pop_back();
  72.             if (a1 == 'T')
  73.             {
  74.                 z2.push_back({'W', 'F'});
  75.             }
  76.             else
  77.             {
  78.                 z2.push_back({'W', 'T'});
  79.             }
  80.         }
  81.     }
  82.     cout << z2.at(0).second << endl;
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment