Submission #1331108

#TimeUsernameProblemLanguageResultExecution timeMemory
1331108Zone_zoneeJOIOJI (JOI14_joioji)C++20
100 / 100
31 ms15812 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+10;

int J, O, I;
map<int, map<int, map<int, int>>> mp;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    string s;
    cin >> n >> s;
    s = '.'+s;
    int ans = 0;
    for(int i = 1; i <= n; ++i){
        J += (s[i] == 'J');
        O += (s[i] == 'O');
        I += (s[i] == 'I');
        int d1 = J-O, d2 = O-I, d3 = I-J;
        if(d1 == 0 && d2 == 0 && d3 == 0){
            ans = max(ans, i);
        }else if(mp[d1][d2][d3] == 0){
            mp[d1][d2][d3] = i;
        }else{
            ans = max(ans, i-mp[d1][d2][d3]);
        }
    }
    cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...