#include #include #include using namespace std; #define dkebug char pop(queue &q) { auto x = q.front(); q.pop(); return x; } typedef long long ll; ll eval (queue &q) { ll res = 1; auto c = pop(q); while (true) { switch (c) { case '1': q.pop(); #ifdef debug cout << "Ret 1"< &v) { queue q; for (const auto x : v) { q.push(x); } { //q.pop(); //return eval(q); } ll res = 1; while (!q.empty()) { q.pop(); res *= eval(q); if (!q.empty()) q.pop(); } return res; } int main() { int n; cin >> n; vector v; for (int i = 0; i < n; i++) { char c; cin >> c; if (c == '(') { if (!v.empty() && v.back() == ')') { v.push_back('*'); } } else { // TODO ')' if (v.back() == '(') { v.push_back('1'); } else { v.push_back('+'); v.push_back('1'); } } v.push_back(c); } #ifdef debug for (const auto x : v) { cout << x << ' '; }cout <