Dead_reaper @ 2024-02-20 14:44:25
#include<bits/stdc++.h>
using namespace std;
long long len,n,m,c,ps[1005];
int maxx=-1e8,sz[1005],a,b;
string str;
int main(){
cin>>str;
n=str.size();n*=2;
str+=str;
for(int i=1;i<=n;i++){
if(str[i-1]=='G') sz[i]=1;
else sz[i]=-1;
ps[i]=ps[i-1]+sz[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
if(i-j+1>n/2) break;
if(ps[i]-ps[j-1]==0)
maxx=max(maxx,i-j+1);
}
}
cout<<maxx;
return 0;
}
90分求大佬帮助 QwQ
by HMSVanguard @ 2024-02-20 15:30:29
错的那个点数据全部都是G,应该输出0,但maxx没有变就输出了,只要在输出时特判一下maxx是不是-1e8输出0就好了。
by Dead_reaper @ 2024-02-20 16:02:40
@HMSVanguard 谢大佬