求助
查看原帖
求助
509923
SongShouqian楼主2022/3/20 11:36

无论怎么改,交上去总是 WA……求大佬们帮助

#include<bits/stdc++.h>
using namespace std;
int n,j[200001],o[200001],I[200001];
char poem;
map<int,map<int,int> >joi;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		cin>>poem;
        if(poem=='J') j[i]=1;
        if(poem=='O') o[i]=1;
        if(poem=='I') I[i]=1;
	}
    for(int i=1;i<=n;i++) j[i]=j[i-1]+j[i];
    for(int i=1;i<=n;i++) o[i]=o[i-1]+o[i];
    for(int i=1;i<=n;i++) I[i]=I[i-1]+I[i];
	int ans=0; 
	for(int i=1;i<=n;i++)
	{
		if(!joi[j[i]-o[i]][o[i]-I[i]])
		{
			joi[j[i]-o[i]][o[i]-I[i]]=i;
		}
		else
		{
			ans=max(ans,i-joi[j[i]-o[i]][o[i]-I[i]]);
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(j[i]==o[i]&&o[i]==I[i])
		{
			ans=max(ans,i);
		}
	}
	printf("%d",ans);
	return 0;
}
2022/3/20 11:36
加载中...