#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |