제출 #1133544

#제출 시각아이디문제언어결과실행 시간메모리
1133544nuutsnoynton스탬프 수집 (JOI16_ho_t2)C++20
100 / 100
5 ms2888 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; ll J[100005], O[100002], I[100002]; int main() { ll n, m, r, x, y, i,p, j,cnt1,cnt, ans, t,s, mx, mn, k; string str; cin >> n >> str; for (i = 0; i < n; i ++) { J[i + 1] = J[i]; O[i + 1] = O[i]; I[i + 1] = I[i]; if ( str[i] == 'J') J[i + 1] ++; if ( str[i] == 'O') O[i + 1] ++; if ( str[i] == 'I') I[i + 1] ++; } ans= 0; for (i = 1; i <= n; i ++) { if ( str[i - 1] == 'O') { ans = ans + (J[i] * (I[n] - I[i ])); } } // J cnt = 0; cnt1 = 0; for (i = n; i >= 1; i --) { if ( str[i - 1] == 'I') cnt1 ++; if ( str[i - 1] == 'O') cnt += cnt1; } p = cnt; // I cnt= cnt1 = 0; for (i =0; i < n; i ++) { if ( str[i] == 'J') cnt1 ++; if ( str[i] == 'O') cnt += cnt1; } p =max(p, cnt); for (i = 1; i < n; i ++) { p = max(p, J[i] *(I[n] - I[i])); } cout << ans + p << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...