P2697宝石串90pts

P2697 宝石串

lisquid @ 2023-10-05 22:46:13

WA了第五个点求助

#include<bits/stdc++.h>
using namespace std;
int r[1000010],g[1000010],b=0,c=0,s[1000010];//r-g
string a;
int main(){
    cin>>a;
    r[0]=0,g[0]=0,s[0]=r[0]-g[0];
    int m=a.size();
    for(int i=0;i<m;i++){
        r[i]=r[i-1];
        g[i]=g[i-1];
        s[i]=s[i-1];
        if(a[i]=='G'){
            g[i]++;
            b++;
        }
        if(a[i]=='R'){
            r[i]++;
            c++;
        }
        s[i]=r[i]-g[i];
    }
    int ans=0;
    for(int i=0;i<m;i++){
        for(int j=i;j<m;j++){
            if(s[j]-s[i]==0){
                ans=max(ans,j-i);
            }
        }
    }
    if(b!=c){
        cout<<ans;
    }
    else{
        cout<<m;
    }
    return 0;
}

by Galaxy_Ivan @ 2023-10-18 22:17:09

倘若阁下得到一个答案为前k个宝石合成一条最长稳定链的情况,如GRGRGRGRGRRRRRGGRGRG,阁下又当如何应对?

不要忘了前k个宝石就是答案的特例


|