Run ID:136245
提交时间:2025-11-09 22:35:46
#include <iostream> #include <vector> using namespace std; int main() { int N, M; cin >> N >> M; int total = N * (N + 1) / 2; if ((total + M) % 2 != 0) { cout << 0 << endl; return 0; } int sum1 = (total + M) / 2; vector<bool> dp(sum1 + 1, false); dp[0] = true; for (int i = 1; i <= N; ++i) { for (int j = sum1; j >= i; --j) { dp[j] = dp[j] || dp[j - i]; } } int count = 0; for (int i = 1; i <= sum1; ++i) { if (dp[i] && dp[sum1 - i]) { count++; } } cout << count << endl; return 0; }