Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define __GLIBCXX_DEBUG
- #include <bits/stdc++.h>
- using namespace std;
- #define rep(i, n) for(int i = 0; i < (int)(n); ++i)
- #define pb push_back
- #define ALL(a) begin(a), end(a)
- #define mp make_pair
- #define F first
- #define S second
- #define SZ(a) ((int)(a.size()))
- typedef long long ll;
- typedef pair<int, int> PI;
- vector<string> ap;
- int n;
- int pos = 0;
- ll rec(int dep){
- if(isdigit(ap[pos][dep])){
- int tcp = pos;
- ++pos;
- return ap[tcp][dep] - '0';
- }
- char op = ap[pos][dep];
- ++pos;
- ++dep;
- ll ret = rec(dep);
- while(pos < SZ(ap) && dep < SZ(ap[pos])){
- int p = rec(dep);
- if(op == '+') ret += p;
- else ret *= p;
- }
- return ret;
- }
- void solve(){
- ap.resize(n);
- rep(i, n) cin >> ap[i];
- pos = 0;
- cout << rec(0) << endl;
- }
- int main(int argc, char *argv[])
- {
- while(cin >> n && n) solve();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement