Submission #1148545

#TimeUsernameProblemLanguageResultExecution timeMemory
1148545nuutsnoyntonJOIOJI (JOI14_joioji)C++20
100 / 100
27 ms7480 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...