Submission #1271422

#TimeUsernameProblemLanguageResultExecution timeMemory
1271422kaiboy스탬프 수집 (JOI16_ho_t2)C++20
100 / 100
2 ms2888 KiB
#include <algorithm> #include <iostream> using namespace std; const int N = 100000; char cc[N + 1]; int ppj[N], qqi[N]; long long ppjo[N], qqoi[N]; int main() { ios_base::sync_with_stdio(false), cin.tie(NULL); int n; cin >> n >> cc; int kj = 0; long long kjo = 0, kjoi = 0; for (int i = 0; i < n; i++) { if (cc[i] == 'J') kj++; else if (cc[i] == 'O') kjo += kj; else kjoi += kjo; ppj[i] = kj; ppjo[i] = kjo; } int ki = 0; long long koi = 0; for (int i = n - 1; i >= 0; i--) { if (cc[i] == 'I') ki++; else if (cc[i] == 'O') koi += ki; qqi[i] = ki; qqoi[i] = koi; } long long ans = 0; for (int i = 0; i <= n; i++) { long long k = 0; if (i < n) k = max(k, qqoi[i]); if (i && i < n) k = max(k, (long long) ppj[i - 1] * qqi[i]); if (i) k = max(k, ppjo[i - 1]); ans = max(ans, kjoi + k); } cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...