Submission #6866

#TimeUsernameProblemLanguageResultExecution timeMemory
6866QwazJOIOJI (JOI14_joioji)C++98
100 / 100
48 ms6948 KiB
#include <cstdio>
#include <algorithm>
#include <map>

using namespace std;
typedef pair < int, int > pii;
const int MAX = 200020;

int n, res;
char data[MAX];
map < pii, int > mp;

void solve(){
	mp[pii(0, 0)] = -1;

	int i, jSum = 0, oSum = 0, iSum = 0;
	for(i = 0; i<n; i++){
		if(data[i] == 'J') jSum++;
		else if(data[i] == 'O') oSum++;
		else iSum++;

		pii t = pii(oSum-jSum, iSum-jSum);
		if(mp.find(t) != mp.end())
			res = max(res, i-mp[t]);
		else
			mp[t] = i;
	}

	printf("%d\n", res);
}

int main(){
	scanf("%d%s", &n, data);

	solve();

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...