@[realskc](/user/35672) @[_bzy](/user/213388)
by CEFqwq @ 2024-03-14 19:39:57
另附上我五年级的时候过这道题的代码(格式化了一下),就这道题目而言已经很简洁了。
```cpp
#include<bits/stdc++.h>
using namespace std;
int n, q;
char a[10005], b[10005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin >> n >> a;
for (int i = 0; i < n; i++)
if (a[i] == 'w')
q++;
if (q == n){
cout << n;
exit(0);
}
strcpy(b, a);
strcat(a, b);
int mx = 0;
for (int i = 0; i < (n << 1); i++){
int L = 0, R = 0, xz = 0;
for (int j = i; j >= i - n && j >= 0; j--){
if (a[j] == 'r'){
if (L == 2 || !j || j == i - n){
xz += i + 1 - j;
if (L == 2)
xz--;
break;
}
L = 1;
}else if (a[j] == 'b' || j == 0 || j == i - n){
if (L == 1){
xz += i + 1 - j;
if (L == 1)
xz--;
break;
}
L = 2;
}
}
for (int j = i + 1; j < i + n + 1 - xz && j < (n << 1); j++){
if (a[j] == 'r'){
if (R == 2 || j == (n << 1) - 1 || j == (i + n + 1 - xz - 1)){
xz += j - i - 1;
if (R != 2)
xz++;
break;
}
R = 1;
}else if (a[j] == 'b'){
if (R == 1 || j == (n << 1) - 1 || j == (i + n + 1 - xz - 1)){
xz += j - i - 1;
if (R != 1)
xz++;
break;
}
R = 2;
}
}
if (xz > mx)
mx = xz;
}
if (mx < n)
cout << mx;
else
cout << n;
}
```
by CEFqwq @ 2024-03-14 19:46:16
@[爱肝大模拟的tlxjy](/user/482610) 纯粹模拟,感觉橙挺合适的。
by _bzy @ 2024-03-15 14:53:13