Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //UVa Q727
- #include <bits/stdc++.h>
- using namespace std;
- string func(string s){
- string ret;
- vector<char> v;
- for(unsigned i = 0; i < s.size(); ++i){
- if(s[i] == '(')v.emplace_back(s[i]);
- else if(s[i] == ')'){
- while(v.back() != '('){
- ret += v.back();
- v.pop_back();
- }
- v.pop_back();
- }else if(s[i] == '*' || s[i] == '/'){
- while(!v.empty() && (v.back() == '*' || v.back() == '/')){
- ret += v.back();
- v.pop_back();
- }
- v.emplace_back(s[i]);
- }else if(s[i] == '+' || s[i] == '-'){
- while(!v.empty() && (v.back() == '+' || v.back() == '-' || v.back() == '*' || v.back() == '/')){
- ret += v.back();
- v.pop_back();
- }
- v.emplace_back(s[i]);
- }
- else ret += s[i];
- }
- while(!v.empty()){
- ret += v.back();
- v.pop_back();
- }
- return ret;
- }
- int main(){
- int t;
- cin >> t;
- cin.get();
- cin.get();
- while(t--){
- string s, in;
- while(getline(cin, in)){
- if(in == "")break;
- s += in;
- }
- cout << func(s) << '\n';
- if(t)cout << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement