Mirbek

Ход конём - 2

Dec 28th, 2021
1,063
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int N = 505;
  6.  
  7. int n, m;
  8. long long dp[N][N];
  9.  
  10. long long add(long long a, long long b) {
  11.     return a + b;
  12. }
  13.  
  14. int main(){
  15.     cin >> n >> m;
  16.  
  17.     dp[1][1] = 1;
  18.  
  19.     for (int d = 3; d <= n + m; d++) {
  20.         for (int i = 1; i <= n; i++) {
  21.             int j = d - i;
  22.             if (i - 1 >= 1 && j - 2 >= 1) {
  23.                 dp[i][j] = add(dp[i][j], dp[i - 1][j - 2]);
  24.             }
  25.             if (i - 2 >= 1 && j - 1 >= 1) {
  26.                 dp[i][j] = add(dp[i][j], dp[i - 2][j - 1]);
  27.             }
  28.             if (i + 1 <= n && j - 2 >= 1) {
  29.                 dp[i][j] = add(dp[i][j], dp[i + 1][j - 2]);
  30.             }
  31.             if (i - 2 >= 1 && j + 1 <= m) {
  32.                 dp[i][j] = add(dp[i][j], dp[i - 2][j + 1]);
  33.             }
  34.         }
  35.     }
  36.     cout << dp[n][m] << endl;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment