# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
120213 | dantoh000 | JOIOJI (JOI14_joioji) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define int long long
using namespace std;
unordered_map<int,int> m;
int f(int x, int y){
return (x<<17)^y;
}
int main(){
int n;
scanf("%d",&n);
int ans = 0;
int a, b;
for (int i = 0; i < n; i++){
char x;
scanf(" %c",&x);
if (x == 'J'){
a++; b++;
}
else if (x == 'O') a--;
else if (x == 'I') b--;
int k = f(a,b);
if (m[k] == 0){
m[k] = i;
}
else{
ans = max(ans,i-m[k]);
}
}
printf("%d",ans);
}