WA78pts on #3 & #8
查看原帖
WA78pts on #3 & #8
1171250
w132326820楼主2025/1/25 11:49

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
char a[10005];
int maxn=-1,n;
int right(int x)
{
    int flag=0;
    int cnt=0,t;
    if(a[x]=='r')
    {
        flag=1;
        cnt=1;
    }
    if(a[x]=='b')
    {
        cnt=1;
        flag=2;
    }
    if(a[x]=='w')
    {
        cnt=1;
        flag=3;
    }
    t=x+1;
    for(int i=1;i<n;i++)
    {
        if(t==n)t=0;
        if(flag==3)
        {
            if(a[t]=='r')
            {
                flag=1;
                cnt++;
            }
            if(a[t]=='b')
            {
                flag=2;
                cnt++;
            }
            if(a[t]=='w')
            {
                flag=3;
                cnt++;
            }
        }
        if(flag==1)
        {
            if(a[t]=='r'||a[t]=='w')cnt++;
            else break;
        }
        if(flag==2)
        {
            if(a[t]=='b'||a[t]=='w')cnt++;
            else break;
        }
        t++;
    }
    return cnt;
}
int left(int x)
{
    int flag=0;
    int cnt=0,t;
    if(a[x]=='r')
    {
        flag=1;
        cnt=1;
    }
    if(a[x]=='b')
    {
        cnt=1;
        flag=2;
    }
    if(a[x]=='w')
    {
        cnt=1;
        flag=3;
    }
    t=x-1;
    for(int i=1;i<n;i++)
    {
        if(t==-1)t=n;
        if(flag==3)
        {
            if(a[t]=='r')
            {
                flag=1;
                cnt++;
            }
            if(a[t]=='b')
            {
                flag=2;
                cnt++;
            }
            if(a[t]=='w')
            {
                flag=3;
                cnt++;
            }
        }
        if(flag==1)
        {
            if(a[t]=='r'||a[t]=='w')cnt++;
            else break;
        }
        if(flag==2)
        {
            if(a[t]=='b'||a[t]=='w')cnt++;
            else break;
        }
        t--;
    }
    return cnt;
}
int main()
{
    cin>>n>>a;
    for(int i=0;i<n;i++)
    {
        maxn=max(left(i-1)+right(i),maxn);
    }
    if(maxn>n)
        maxn=n;
    cout<<maxn;
    return 0;
}






2025/1/25 11:49
加载中...