Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ll long long
- #include <bits/stdc++.h>
- using namespace std;
- const int OO = 1e9;
- const double EPS = 1e-9;
- string conv(vector<string> v) {
- bool brk = true;
- while(brk) {
- brk = false;
- for(int i = 0; i < v.size(); i++) {
- if(v[i] == ")") {
- for(int j = i-1; ; j--) {
- if(v[j] == "(") {
- vector<string> nv;
- vector<string> bc;
- for(int k = j+1; k < i; k++) {
- bc.push_back(v[k]);
- }
- for(int k = 0; k < j; k++) {
- nv.push_back(v[k]);
- }
- nv.push_back(conv(bc));
- for(int k = i+1; k < v.size(); k++) {
- nv.push_back(v[k]);
- }
- v = nv;
- brk = true;
- break;
- }
- }
- break;
- }
- }
- }
- for(int i = 0; i < v.size(); i++) {
- if(v[i] == "*" || v[i] == "/") {
- string np = v[i-1] + v[i+1] + v[i];
- v[i-1] = np;
- v.erase(v.begin()+i,v.begin()+i+2);
- i--;
- }
- }
- for(int i = 0; i < v.size(); i++) {
- if(v[i] == "+" || v[i] == "-") {
- string np = v[i-1] + v[i+1] + v[i];
- v[i-1] = np;
- v.erase(v.begin()+i,v.begin()+i+2);
- i--;
- }
- }
- return v[0];
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- cout.tie(NULL);
- string in;
- getline(cin,in);
- int t = stoi(in);
- getline(cin,in);
- while(t--) {
- vector<string> v;
- while(getline(cin,in) && in != "")
- v.push_back(in);
- cout << conv(v) << "\n";
- if(t)
- cout << "\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement