Advertisement
_rashed

UVA 727

Jul 12th, 2022
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.97 KB | None | 0 0
  1. #define ll long long
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. const int OO = 1e9;
  6. const double EPS = 1e-9;
  7.  
  8. string conv(vector<string> v) {
  9.     bool brk = true;
  10.     while(brk) {
  11.         brk = false;
  12.         for(int i = 0; i < v.size(); i++) {
  13.             if(v[i] == ")") {
  14.                 for(int j = i-1; ; j--) {
  15.                     if(v[j] == "(") {
  16.                         vector<string> nv;
  17.                         vector<string> bc;
  18.                         for(int k = j+1; k < i; k++) {
  19.                             bc.push_back(v[k]);
  20.                         }
  21.                         for(int k = 0; k < j; k++) {
  22.                             nv.push_back(v[k]);
  23.                         }
  24.                         nv.push_back(conv(bc));
  25.                         for(int k = i+1; k < v.size(); k++) {
  26.                             nv.push_back(v[k]);
  27.                         }
  28.                         v = nv;
  29.                         brk = true;
  30.                         break;
  31.                     }
  32.                 }
  33.                 break;
  34.             }
  35.         }
  36.     }
  37.     for(int i = 0; i < v.size(); i++) {
  38.         if(v[i] == "*" || v[i] == "/") {
  39.             string np = v[i-1] + v[i+1] + v[i];
  40.             v[i-1] = np;
  41.             v.erase(v.begin()+i,v.begin()+i+2);
  42.             i--;
  43.         }
  44.     }
  45.     for(int i = 0; i < v.size(); i++) {
  46.         if(v[i] == "+" || v[i] == "-") {
  47.             string np = v[i-1] + v[i+1] + v[i];
  48.             v[i-1] = np;
  49.             v.erase(v.begin()+i,v.begin()+i+2);
  50.             i--;
  51.         }
  52.     }
  53.     return v[0];
  54. }
  55.  
  56. int main()
  57. {
  58.     ios_base::sync_with_stdio(false);
  59.     cin.tie(NULL);
  60.     cout.tie(NULL);
  61.  
  62.     string in;
  63.     getline(cin,in);
  64.     int t = stoi(in);
  65.     getline(cin,in);
  66.     while(t--) {
  67.         vector<string> v;
  68.         while(getline(cin,in) && in != "")
  69.             v.push_back(in);
  70.         cout << conv(v) << "\n";
  71.         if(t)
  72.             cout << "\n";
  73.     }
  74.     return 0;
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement