Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- using namespace std;
- const int Maxn = 14;
- const int Maxd = 4;
- const int dy[Maxd] = {-1, 0, 1, 0};
- const int dx[Maxd] = {0, -1, 0, 1};
- int t;
- int n, m, k;
- char B[Maxn][Maxn];
- int sr, sc;
- bool Get(int r, int c, int k)
- {
- if (k == 0) return true;
- if (r < 0) r += n; r %= n;
- if (c < 0) c += m; c %= m;
- if (B[r][c] == '#') return false;
- int nk = k - 1 + (B[r][c] == 'o');
- char mem = B[r][c]; B[r][c] = '#';
- for (int i = 0; i < Maxd; i++)
- if (Get(r + dy[i], c + dx[i], nk))
- return true;
- B[r][c] = mem;
- return false;
- }
- int main()
- {
- scanf("%d", &t);
- for (int tc = 1; tc <= t; tc++) {
- scanf("%d %d %d", &n, &m, &k);
- for (int i = 0; i < n; i++) {
- scanf("%s", B[i]);
- for (int j = 0; j < m; j++)
- if (B[i][j] == 'x') {
- sr = i; sc = j;
- }
- }
- printf("Case #%d: %s\n", tc, Get(sr, sc, k)? "Fits perfectly!": "Oh no, snake's too fat!");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement