Advertisement
Guest User

Untitled

a guest
Oct 6th, 2013
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <map>
  5. #include <set>
  6. #include <algorithm>
  7. #include <string>
  8. #include <cstring>
  9. #include <cctype>
  10. #include <utility>
  11. #include <cmath>
  12.  
  13. using namespace std;
  14. int cnt=0;
  15. int n, K;
  16. string s[200];
  17. char t[100][20000];
  18. char vs[20000];
  19. int vlen=0;
  20. int len[201];
  21. int tl[201];
  22.  
  23. void get (int i, int k, int sr, int res) {
  24.     if (k > K)  {
  25.             cnt = max(cnt, res);
  26.             return;
  27.     }  
  28.     char ok = 'W';
  29.         for (int f = len[i], g = vlen; f > 0 && g > 0; f--, g--)
  30.             if (vs[g] != t[i][f]) {
  31.                 if (vs[g] == 'W')
  32.                     ok = 'B';
  33.                 else
  34.                     ok = 'W';
  35.                 break;
  36.                 }
  37.         vlen++;
  38.         vs[vlen] = ok;
  39.         len[i]++;
  40.         t[i][len[i]] = (ok == 'W' ? 'B' : 'W');
  41.         int vl = vlen;
  42.         for (int f = 0; f < n; f++)
  43.             tl[f] = len[f];
  44.         get ((i + 1) % n, k + 1, 1, res + (ok == 'W'));
  45.         vlen = vl;
  46.         for (int f = 0; f < n; f++)
  47.             len[f] = tl[f];    
  48.         if (sr < 2)
  49.             get (i, k + 1, 2, res + (ok == 'W'));
  50. }
  51.  
  52. int main () {
  53.     freopen ("checkers.in", "r", stdin);
  54.     freopen ("checkers.out", "w", stdout);
  55.  
  56.     cin >> n >> K;
  57.     for (int i = 0; i < n; i++) {
  58.         cin >> s[i];
  59.         len[i] = s[i].size();
  60.         for (int j = 0; j < len[i]; j++)
  61.             t[i][j + 1] = s[i][j];
  62.     }
  63.     get (0, 1, 1, 0);  
  64.     cout << cnt;
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement