大意略。
/* ID:g0feng1 LANG:C++ TASK:beads */ #include <iostream> #include <fstream> #include <cstdlib> #include <cstdio> #include <string> #include <cstring> #include <cmath> #include <vector> #include <algorithm> using namespace std; FILE *fin = fopen("beads.in", "r"); FILE *fout = fopen("beads.out", "w"); const int maxn = 360; char buf[maxn]; int n; void read_case() { fscanf(fin, "%d %s", &n, buf); //scanf("%d %s", &n, buf); } int cal() { int len = strlen(buf); int ans = 0; for(int i = 0; i < n; i++) { int count = 0; int j = i%n, k = (i-1+n)%n; while(count < n && buf[j] == 'w') { count++; j = (j+1)%n; } char c = buf[j]; while(count < n && (buf[j] == c || buf[j] == 'w')) { count++, j = (j+1)%n; } while(count < n && buf[k] == 'w') { count++; k = (k-1+n)%n; } c = buf[k]; while(count < n && (buf[k] == c || buf[k] == 'w')) { count++; k = (k-1+n)%n; } ans = max(ans, count); } return ans; } void solve() { read_case(); int ans = cal(); fprintf(fout, "%d\n", ans); //printf("%d\n", ans); } int main() { solve(); return 0; }