Submission #1148769

#TimeUsernameProblemLanguageResultExecution timeMemory
1148769ace5Homework (CEOI22_homework)C++20
100 / 100
656 ms228520 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...