Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 505;
- int n, m;
- long long dp[N][N];
- long long add(long long a, long long b) {
- return a + b;
- }
- int main(){
- cin >> n >> m;
- dp[1][1] = 1;
- for (int d = 3; d <= n + m; d++) {
- for (int i = 1; i <= n; i++) {
- int j = d - i;
- if (i - 1 >= 1 && j - 2 >= 1) {
- dp[i][j] = add(dp[i][j], dp[i - 1][j - 2]);
- }
- if (i - 2 >= 1 && j - 1 >= 1) {
- dp[i][j] = add(dp[i][j], dp[i - 2][j - 1]);
- }
- if (i + 1 <= n && j - 2 >= 1) {
- dp[i][j] = add(dp[i][j], dp[i + 1][j - 2]);
- }
- if (i - 2 >= 1 && j + 1 <= m) {
- dp[i][j] = add(dp[i][j], dp[i - 2][j + 1]);
- }
- }
- }
- cout << dp[n][m] << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment