提交时间:2026-01-04 15:14:49

运行 ID: 80377

#include <iostream> #include <vector> using namespace std; int main() { int N, M; cin >> N >> M; vector<vector<int>> dp(N + 1, vector<int>(M + 1, 0)); dp[0][0] = 1; for (int i = 1; i <= N; ++i) { for (int j = 0; j <= M; ++j) { if (j + i <= M) dp[i][j + i] += dp[i - 1][j]; if (j >= i) dp[i][j - i] += dp[i - 1][j]; else dp[i][i - j] += dp[i - 1][j]; } } int result = dp[N][M]; if (M == 0) result /= 2; cout << result << endl; return 0; }