50分,第20个点wa求助
查看原帖
50分,第20个点wa求助
845988
Shizaki_Crazy_Three楼主2023/8/21 18:22
#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t,n;
    cin>>t;
    char s[1000005],b[1000005];
    while(t--){
        cin>>n;
        scanf("%s",s);
        long long len=strlen(s);
        for(int i=0;i<len;i++) b[i]=s[i];
        long long ans=0,maxx=0;
        for(int i=1;i<=10;i++){
            ans=0;
            for(int i=0;i<len;i++){
                if(s[i]=='T'){
                    ans++;
                }else if(s[i]=='B'){
                    if(s[i+1]=='T'&&s[i+2]=='T'&&s[i+3]=='B'){
                        if(ans<2) ans=2;
                        else ans++;
                        maxx=max(maxx,ans);
                        ans=0;
                        s[i]='T';
                        s[i+1]=s[i+2]='B';
                        s[i+3]='T';
                    }else {
                        maxx=max(maxx,ans);
                        ans=0;
                    }
                }
                maxx=max(maxx,ans);
            }
            ans=0;
            for(int i=len-1;i>0;i--){
                if(s[i]=='T'){
                    ans++;
                }else if(s[i]=='B'){
                    if(i>=3){
                        if(s[i-1]=='T'&&s[i-2]=='T'&&s[i-3]=='B'){
                        if(ans<2) ans=2;
                        else ans++;
                        maxx=max(maxx,ans);
                        ans=0;
                        s[i]='T';
                        s[i-1]=s[i-2]='B';
                        s[i-3]='T';
                    }else {
                        maxx=max(maxx,ans);
                        ans=0;
                    }
                    }else {
                        maxx=max(maxx,ans);
                        ans=0;
                    }
                }
                maxx=max(maxx,ans);
            }
        }
        for(int i=0;i<len;i++) s[i]=b[i];
        for(int i=1;i<=10;i++){
            ans=0;
            for(int i=len-1;i>0;i--){
                if(s[i]=='T'){
                    ans++;
                }else if(s[i]=='B'){
                    if(i>=3){
                        if(s[i-1]=='T'&&s[i-2]=='T'&&s[i-3]=='B'){
                        if(ans<2) ans=2;
                        else ans++;
                        maxx=max(maxx,ans);
                        ans=0;
                        s[i]='T';
                        s[i-1]=s[i-2]='B';
                        s[i-3]='T';
                    }else {
                        maxx=max(maxx,ans);
                        ans=0;
                    }
                    }else {
                        maxx=max(maxx,ans);
                        ans=0;
                    }
                }
                maxx=max(maxx,ans);
            }
            ans=0;
            for(int i=0;i<len;i++){
                if(s[i]=='T'){
                    ans++;
                }else if(s[i]=='B'){
                    if(s[i+1]=='T'&&s[i+2]=='T'&&s[i+3]=='B'){
                        if(ans<2) ans=2;
                        else ans++;
                        maxx=max(maxx,ans);
                        ans=0;
                        s[i]='T';
                        s[i+1]=s[i+2]='B';
                        s[i+3]='T';
                    }else {
                        maxx=max(maxx,ans);
                        ans=0;
                    }
                }
                maxx=max(maxx,ans);
            }
        }       
        cout<<maxx<<endl;
    }
    return 0;
}

只有第20个点wa了求hack数据

2023/8/21 18:22
加载中...