main.cc 514 B

123456789101112131415161718192021222324252627
  1. #include <cstdio>
  2. #include <cstring>
  3. using namespace std;
  4. const int N = 20;
  5. bool flag[N + 1][2 * N + 1];
  6. int dfs(int x, int y, int n) {
  7. if (n == 0) return 1;
  8. int cnt = 0;
  9. flag[x][y] = true;
  10. if (!flag[x + 1][y]) cnt += dfs(x + 1, y, n - 1);
  11. if (!flag[x][y + 1]) cnt += dfs(x, y + 1, n - 1);
  12. if (!flag[x][y - 1]) cnt += dfs(x, y - 1, n - 1);
  13. flag[x][y] = false;
  14. return cnt;
  15. }
  16. int main() {
  17. int n;
  18. scanf("%d", &n);
  19. memset(flag, 0, sizeof(flag));
  20. printf("%d\n", dfs(0, N, n));
  21. return 0;
  22. }