P1203 [USACO1.1]坏掉的项链Broken Necklace

P1203 [USACO1.1]坏掉的项链Broken Necklace
不错的断环为链的模拟题,开成三倍,有很多细节要考虑,比如总长度要<=n,开头第一个是w等等。

#include<bits/stdc++.h>
using namespace std;
char c[10000];
int n;
int ans=-2147483647;

int r(int x)
{
    int r=x;
    char t;
    while(c[r]=='w')
    r++;
    t=c[r];
    while(c[r+1]==t||c[r+1]=='w')
    r++;
    return (r-x+1>n?n:r-x+1);
}   

int l(int x)
{
    int l=x;
    char t;
    while(c[l]=='w')
    l--;
    t=c[l];
    while(c[l-1]==t||c[l-1]=='w')
    l--;
    return (x-l+1>n?n:x-l+1);
}

int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>c[i+n];
        c[i]=c[i+n];
        c[i+2*n]=c[i+n];
    }
     for(int i=n;i<2*n;i++)
       ans=max(ans,l(i)+r(i+1));
       cout<<min(ans,n);    
  return 0;
}
原文地址:https://www.cnblogs.com/war1111/p/7679823.html