马蜂很丑
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
char a[n+2];
for(int i=1;i<=n;i++){
cin>>a[i];
}
int sum1=0,sum2=0,ans=0;
char biao;
for(int i=1;i<=n;i++){
if(a[i]=='w'){
if(i==1||i==n){
int j;
if(i==1){
j=1;
}else{
j=0;
}
int g=0;
char biao;
while(1){
j++;
if(a[j]=='r'&&biao!='w'){
g++;
biao='r';
}else{
break;
}
if(a[j]=='b'&&biao!='r'){
g++;
biao='w';
}else{
break;
}
}
if(i==1){
j=n;
}else{
j=(n-1);
}
int g1=0;
char biao1;
while(1){
j--;
if(a[j]=='r'&&biao!='w'){
g1++;
biao1='r';
}else{
break;
}
if(a[j]=='b'&&biao!='r'){
g1++;
biao1='w';
}else{
break;
}
}
if(biao='r'){
if(g>g1){
sum1++;
a[i]='r';
}else{
sum2++;
a[i]='w';
}
}else{
if(g>g1){
sum2++;
a[i]='w';
}else{
sum1++;
a[i]='r';
}
}
ans=max(ans,sum1);
ans=max(ans,sum2);
}else{
int j=i;
int g2=0;
char biao2;
while(1){
j++;
if(a[j]=='r'&&biao!='w'){
g2++;
biao2='r';
}else{
break;
}
if(a[j]=='b'&&biao!='r'){
g2++;
biao2='w';
}else{
break;
}
}
j=i;
int g3=0;
char biao3;
while(1){
j--;
if(a[j]=='r'&&biao!='w'){
g3++;
biao3='r';
}else{
break;
}
if(a[j]=='b'&&biao!='r'){
g3++;
biao3='w';
}else{
break;
}
}
if(biao2='r'){
if(g2>g3){
sum1++;
a[i]='r';
}else{
sum2++;
a[i]='w';
}
}else{
if(g2>g3){
sum2++;
a[i]='w';
}else{
sum1++;
a[i]='r';
}
}
ans=max(ans,sum1);
ans=max(ans,sum2);
}
}
if(a[i]=='r'){
if(a[i-1]=='b'){
ans=max(ans,sum1);
sum2++;
}else{
sum2++;
}
}
if(a[i]=='b'){
if(a[i-1]=='r'){
sum1++;
ans=max(ans,sum2);
}else{
sum1++;
}
}
}
cout<<ans;
return 0;
}
谢谢啦~