Submission #995265

#TimeUsernameProblemLanguageResultExecution timeMemory
995265gmroh06스탬프 수집 (JOI16_ho_t2)C++14
100 / 100
2 ms2348 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using pll = pair<ll, ll>;

inline void fastio() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
}

ll n;
string s;

int main() {
    fastio();

    cin >> n >> s;

    vector<ll> js(n + 1), is(n + 1);

    for (ll i = 0; i < n; i++) {
        js[i + 1] = js[i] + (s[i] == 'J');
        is[i + 1] = is[i] + (s[i] == 'I');
    }

    ll jt = 0, it = 0, ot = 0, ans = 0;

    for (ll i = 1; i < n; i++) {
        ot = max(ot, js[i] * (is[n] - is[i]));
    }

    for (ll i = 0; i < n; i++) if (s[i] == 'O') {
        jt += is[n] - is[i + 1];
        it += js[i];

        ans += js[i] * (is[n] - is[i + 1]);
    }

    ans += max({ot, jt, it});

    cout << ans;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...