#include <bits/stdc++.h>
using namespace std;
string s;
map<int,int> iv;
vector<int> res(int l,int r)
{
if(l == r)
return {0,0,1};
else
{
vector<int> lp = res(l + 4,iv[l+1]-1);
vector<int> rp = res(iv[l+1]+1,r-1);
if(s[l+1] == 'i')
return {min(lp[0],rp[0]),lp[1] + rp[1],lp[2] + rp[2]};
else
return {lp[0] + rp[0] + 1,max(lp[1] + rp[2],lp[2] + rp[1]),lp[2] + rp[2]};
}
}
int main()
{
cin >> s;
vector<int> st;
for(int i = 0;i < s.size();++i)
{
if(s[i] == 'i')
{
st.push_back(i);
}
else if(s[i] == 'a')
st.push_back(i);
else if(s[i] == ',')
{
iv[st.back()] = i;
st.pop_back();
}
}
vector<int> ans = res(0,s.size()-1);
cout << ans[1]-ans[0]+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... |