我觉得我的代码没问题,第一个测试点下载下来后发现是样例,我手动输入样例也过了。。。
#include <bits/stdc++.h>
#define int long long
using namespace std;
inline int read () {
int w = 0, f = 1;char ch = getchar ();
while (ch < '0' || ch > '9') {if (ch == '-') {f = -1;}ch = getchar ();}
while (ch >= '0' && ch <= '9') {w = w * 10 + ch - '0';ch = getchar ();}
return w * f;
}
int n;
string a;
int find (int x) {
int ans = 0;
char q = a[x];
char w = a[x + 1];
for(int i = x; ; i--) {
if (q == a[i]) {
ans++;
}
else if (a[i] == 'w') {
ans++;
}
else {
break;
}
}
for (int i = x + 1; ; i++) {
if (w == a[i]) {
ans++;
}
else if (a[i] == 'w') {
ans++;
}
else {
break;
}
}
return ans;
}
signed main () {
int ans = -1;
n = read ();
// if (n == 29) {
// cout << 11;
// return 0;
// }
getline (cin, a);
a = a + a + a + a + a + a;
for (int i = 1; i <= n * 2; i++) {
if (a[i] == a[i + 1]) {
continue;
}
if (a[i] == 'w') {
a[i] = 'b';
ans = max (ans, find (i));
a[i] = 'r';
ans = max (ans, find (i));
a[i] = 'w';
}
ans = max (ans, find (i));
}
ans = min (ans, n);
printf ("%lld\n", ans == -1 ? n : ans);
return 0;
}