Advertisement
Guest User

Untitled

a guest
Sep 29th, 2014
699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include <cstdio>
  2. using namespace std;
  3.  
  4. const int Maxn = 14;
  5. const int Maxd = 4;
  6. const int dy[Maxd] = {-1, 0, 1, 0};
  7. const int dx[Maxd] = {0, -1, 0, 1};
  8.  
  9. int t;
  10. int n, m, k;
  11. char B[Maxn][Maxn];
  12. int sr, sc;
  13.  
  14. bool Get(int r, int c, int k)
  15. {
  16.     if (k == 0) return true;
  17.     if (r < 0) r += n; r %= n;
  18.     if (c < 0) c += m; c %= m;
  19.     if (B[r][c] == '#') return false;
  20.     int nk = k - 1 + (B[r][c] == 'o');
  21.     char mem = B[r][c]; B[r][c] = '#';
  22.     for (int i = 0; i < Maxd; i++)
  23.         if (Get(r + dy[i], c + dx[i], nk))
  24.             return true;
  25.     B[r][c] = mem;
  26.     return false;
  27. }
  28.  
  29. int main()
  30. {
  31.     scanf("%d", &t);
  32.     for (int tc = 1; tc <= t; tc++) {
  33.         scanf("%d %d %d", &n, &m, &k);
  34.         for (int i = 0; i < n; i++) {
  35.             scanf("%s", B[i]);
  36.             for (int j = 0; j < m; j++)
  37.                 if (B[i][j] == 'x') {
  38.                     sr = i; sc = j;
  39.                 }
  40.         }
  41.         printf("Case #%d: %s\n", tc, Get(sr, sc, k)? "Fits perfectly!": "Oh no, snake's too fat!");
  42.     }
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement