Run ID:110118

提交时间:2025-02-14 18:10:31

def count_ways(N, M): # 计算总和 S = N * (N + 1) // 2 # 如果 S + M 是奇数,直接返回 0 if (S + M) % 2 != 0: return 0 # 目标和 target = (S + M) // 2 # 初始化 DP 数组 dp = [False] * (target + 1) dp[0] = True # 和为 0 的情况是可行的 # 动态规划填表 for i in range(1, N + 1): for j in range(target, i - 1, -1): # 逆序更新,避免重复使用同一个数字 if dp[j - i]: dp[j] = True # 统计满足条件的方案数 count = sum(dp) return count # 主函数 if __name__ == "__main__": N, M = map(int, input().split()) result = count_ways(N, M) print(result)