mickypinata

USACO-T004: Broken Necklace

Sep 19th, 2021
1,067
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. ID: mickyta1
  3. TASK: beads
  4. LANG: C++
  5. */
  6.  
  7. #include <bits/stdc++.h>
  8. using namespace std;
  9.  
  10. const int N = 350;
  11.  
  12. char str[N + 1];
  13.  
  14. int main(){
  15.  
  16.     freopen("beads.in", "r", stdin);
  17.     freopen("beads.out", "w", stdout);
  18.  
  19.     int len;
  20.     scanf("%d %s", &len, str);
  21.     int mx = 0;
  22.     for(int i = 0; i < len; ++i){
  23.         char tr = str[i];
  24.         int cnt = 0;
  25.         int j;
  26.         for(j = 0; j < len; ++j){
  27.             int idx = (i + j) % len;
  28.             if(tr == 'w'){
  29.                 ++cnt;
  30.                 if(str[idx] != 'w'){
  31.                     tr = str[idx];
  32.                 }
  33.             } else if(str[idx] == tr || str[idx] == 'w'){
  34.                 ++cnt;
  35.             } else {
  36.                 break;
  37.             }
  38.         }
  39.         tr = str[(len + i - 1) % len];
  40.         for(int k = 0; k < len - j; ++k){
  41.             int idx = (len + i - 1 - k) % len;
  42.             if(tr == 'w'){
  43.                 ++cnt;
  44.                 if(str[idx] != 'w'){
  45.                     tr = str[idx];
  46.                 }
  47.             } else if(str[idx] == tr || str[idx] == 'w'){
  48.                 ++cnt;
  49.             } else {
  50.                 break;
  51.             }
  52.         }
  53.         mx = max(mx, cnt);
  54.     }
  55.     cout << mx << '\n';
  56.  
  57.     fclose(stdin);
  58.     fclose(stdout);
  59.  
  60.     return 0;
  61. }
  62.  
RAW Paste Data