#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
typedef long long ll;
const int maxn = 2e5 + 8 , MOD = 1e9 + 7 , T = 350;// Adjust N as we need nNNNn
string s;
vector<int> a;
struct range{
int n , l , r ;
};
range solve(int l , int r){
if(l == r)return {1 , 1 , 1};
auto f1 = solve(l + 4 , a[l + 3] - 1);
auto f2 = solve(a[l + 3] + 1 , r - 1);
if(s[l + 1] == 'a'){
return {f1.n + f2.n , f1.l + f2.l , f1.n + f2.n - min(f1.n - f1.r , f2.n - f2.r)};
}
return {f1.n + f2.n , min(f1.l , f2.l) , f1.r + f2.r - 1};
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> s;const int n = s.size();
a.resize(n);
vector<int> op;
for(int i = 0 ;i < n;i++){
if(s[i] == '(')op.push_back(i);
if(s[i] == ',')a[op.back()] = i;
if(s[i] == ')')op.pop_back();
}
range x = solve(0 , n - 1);
cout << x.r - x.l + 1;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |