Submission #1157549

#TimeUsernameProblemLanguageResultExecution timeMemory
1157549mocha스탬프 수집 (JOI16_ho_t2)C++20
100 / 100
5 ms2120 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int mx = 1e5+5; int n; string st; int pre[mx], suf[mx]; int cnt(string st) { int cj = 0, co = 0; int ans = 0; for (int i=0;i<st.size();i++) { if (st[i] == 'J') cj++; else if (st[i] == 'O') co+=cj; else ans += co; } return ans; } signed main() { cin >> n; cin >> st; int ans = max(cnt("J"s+st), cnt(st+"I"s)); int ct = cnt(st); for (int i=1;i<=n;i++) { pre[i] = pre[i-1] + (st[i-1]=='J'); } for (int i=n;i>=1;i--) { suf[i] = suf[i+1] + (st[i-1]=='I'); } for (int i=1;i<=n;i++) { ans = max(ans, ct + pre[i-1] * suf[i]); } cout << ans << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...