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

时间:2023-03-09 02:48:30
P1203 [USACO1.1]坏掉的项链Broken Necklace

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

#include<bits/stdc++.h>
using namespace std;
char c[];
int n;
int ans=-; int r(int x)
{
int r=x;
char t;
while(c[r]=='w')
r++;
t=c[r];
while(c[r+]==t||c[r+]=='w')
r++;
return (r-x+>n?n:r-x+);
} int l(int x)
{
int l=x;
char t;
while(c[l]=='w')
l--;
t=c[l];
while(c[l-]==t||c[l-]=='w')
l--;
return (x-l+>n?n:x-l+);
} int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
cin>>c[i+n];
c[i]=c[i+n];
c[i+*n]=c[i+n];
}
for(int i=n;i<*n;i++)
ans=max(ans,l(i)+r(i+));
cout<<min(ans,n);
return ;
}