#include using namespace std; #define rep(i , a, b) for(int i = a; i < (b) ; ++i) #define all(x) std::begin(x), std::end(x) #define sz(x) ((int) x.size()) typedef long long ll; #define int ll typedef pair pii; typedef vector vi; const ll mod = 1'000'000'007; ll modpow(ll b, ll e) { ll ans = 1; for(;e ; b = b*b%mod,e/=2) { if(e & 1) ans = ans * b % mod; } return ans; } signed main() { cin.tie(0)->sync_with_stdio(0); int n; cin >> n; int res = 0; int cur_res = 0; int stack = 0; char lastOperation = '+'; vector symbols(n); for (int i = 0; i < n; ++i) { cin >> symbols[i]; } rep(i, 0, n) { if (symbols[i] == ')') { if (i + 1 < n && symbols[i+1] == '(') { lastOperation = '*'; } stack--; cur_res++; } if (symbols[i] == '(') { stack ++; } if (!stack) { if (cur_res) { if (!res) { res += cur_res; } else { if (lastOperation == '+') { res += cur_res; } if (lastOperation == '*') { res *= cur_res; lastOperation = '+'; } } cur_res = 0; } } } if (cur_res) { if (lastOperation == '+') { res += cur_res; } if (lastOperation == '*') { res *= cur_res; } } cout << res << '\n'; return 0; }