78,第三点第六点没过
查看原帖
78,第三点第六点没过
356403
zlybjthcydxxjqpyxgwt楼主2020/7/19 11:22
#include <cstdio>
#include <iostream>
using namespace std;
char a[1500],c[1500];
int z=2,b=1,r=1,i;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        a[i+n]=a[i];
        a[i+n+n]=a[i];
}
 for(int i=1;i<=3*n;i++)
        c[i]=a[i];
    for(int i=n+1;i<=n+n;i++)
    {
        if(a[i]!=a[i+1]&&a[i+1]!='w')
            break;
			if(i==2*n)
        {
            cout<<n<<endl;
            return 0;
        }           
        }         
	for(int i=n+1;i<=n+n;i++)
    {
        if(a[i]==a[i+1]||a[i]=='w'||a[i+1]=='w')
            continue;
        else
        {
            int j=i;
            for(int k=i-1;k>0;k--)
                if(a[k]=='w')
                    a[k]=a[k+1];
            for(int k=i+2;k<=3*n;k++)
                if(a[k]=='w')
                    a[k]=a[k-1];
            while(a[j]==a[j-1])
            {
                b++;
                j--;
            }
            j=i+1;
            while(a[j]==a[j+1])
            {
                r++;
                j++;
            }
            for(int i=1;i<=3*n;i++)
                a[i]=c[i];    
        }    
        if(b+r>z)
            z=b+r;
        b=1;
        r=1;   
    }
    cout<<z<<endl;
    return 0;
}

就酱~

2020/7/19 11:22
加载中...