#include<bits/stdc++.h>
using namespace std;
using ll = long long;
map < pair < ll, pair < ll, ll > > , ll > A;
int main() {
	ll n, m, r,s, x, y, i, j, ans, t, J, O, I;
	cin >> n;
	
	string str;
	
	cin >> str;
	
	str = ">" + str;
	ans = 0;
	J = O = I =0;
	A[make_pair(J, make_pair(O, I))] = 1;
	for (i = 1; i <= n; i ++) {
		if ( str[i] == 'J') J ++;
		if ( str[i] == 'O') O ++;
		if ( str[i] == 'I') I ++;
		r = min({J, O, I});
		J -= r;
		O -= r;
		I -= r;
		s = A[make_pair(J, make_pair(O, I))];
		if ( s != 0) {
			ans= max(ans, i - s + 1);
		}
		else A[make_pair(J, make_pair(O, I))] = i + 1;
//		cout << J << " " << O << " " << I << endl;
	}
	cout << ans << endl;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |