Advertisement
annstasi

Untitled

Dec 21st, 2020
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <fstream>
  3. #include <iostream>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. std::vector<pair<int, int>> steps {
  9. {-2, 1},
  10. {-1, 2},
  11. {1, 2},
  12. {2, 1},
  13. {2, -1},
  14. {1, -2},
  15. {-1, -2},
  16. {-2, -1}
  17. };
  18.  
  19. bool pos[6][6];
  20. int n, m;
  21. int answer;
  22.  
  23. void dfs(int i1, int j1, int cur_len)
  24. {
  25. pos[i1][j1] = true;
  26. for (auto p : steps)
  27. {
  28. int i = p.first, j = p.second;
  29. int ii = i + i1;
  30. int jj = j + j1;
  31.  
  32. if (ii == 0 && jj == 0 && cur_len + 1 == n * m)
  33. {
  34. answer += 1;
  35. return;
  36. }
  37. if (ii >= 0 && ii < n && jj >= 0 && jj < m &&
  38. pos[ii][jj] == false)
  39. {
  40. dfs(ii, jj, cur_len + 1);
  41. pos[ii][jj] = false;
  42. }
  43. }
  44. }
  45.  
  46. int main()
  47. {
  48. std::ifstream fin("input.txt");
  49. std::ofstream fout("output.txt");
  50. fin >> n >> m;
  51. if (n == m && n == 1)
  52. {
  53. fout << 1;
  54. return 0;
  55. }
  56. pos[0][0] = true;
  57. dfs(0, 0, 0);
  58. fout << answer;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement