Submission #1186641

#TimeUsernameProblemLanguageResultExecution timeMemory
1186641JooDdaeJOIOJI (JOI14_joioji)C++20
100 / 100
30 ms7888 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int n, p[200200][3];
string s;

int main() {
	cin.tie(0)->sync_with_stdio(0);
	cin >> n >> s;
	for(int i=1;i<=n;i++) for(int j=0;j<3;j++) p[i][j] = p[i-1][j] + (s[i-1] == "JOI"[j]);

	map<array<int, 3>, int> mp;
	int ans = 0;
	for(int i=0;i<=n;i++) {
		array<int, 3> P = {p[i][0]-p[i][1], p[i][1]-p[i][2], p[i][2]-p[i][0]};
		if(mp.count(P)) ans = max(ans, i-mp[P]);
		else mp[P] = i;
	}
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...