T319897 [2021第十二届蓝桥杯青少年组省赛] 求和比较

题目背景

第十二届蓝桥杯青少年组省赛2021年4月C++组第4题

题目描述

小蓝在学习 C++ 数组时,突发奇想想知道如果将一个连续的正整数数组拆分成两个子数组,然后对拆分出的两个子数组求和并做差,且差值正好等于一个固定的正整数,像这样同一连续的正整数数组拆分方案有多少种。 我们一起帮助小蓝设计一下规则: 1. 第一给出两个正整数 N 和 M; 2. 第二从 1 到 N 组成一个连续正整数数组 $A(A=\{1,2,3,4……N\})$; 3. 第三将数组 A 拆分成两个子数组 A1、A2(1.两个子数组中不能出现相同的数;2.子数组中的数字可以是连续的也可以是不连续的;3.拆分出的两组子数组的元素个数可以不同,但总数量等于A数组元素个数); 4. 第四对 A1、A2 两个子数组分别求和; 5. 第五对 A1、A2 两个子数组的和做差(大的数字减去小的数字); 6. 第六如果差值正好等于固定值M,则判定此拆分方案成立。 如:N = 5,M = 1,连续正整数数组 A = {1, 2, 3, 4, 5}。 符合条件的拆分方案有 3 种: - A1 = {1, 2, 4}, A2={3, 5}, 其中A1的和为7,A2的和为 8,和的差值等于 1 - A1 = {1, 3, 4}, A2 = {2, 5}, 其中A1的和为8,A2的和为 7,和的差值等于 1 - A1 = {3, 4}, A2 = {1, 2, 5}, 其中A1的和为7,A2的和为 8,和的差值等于 1

输入格式

输入两个正整数 $N$ 和 $M(3

输出格式

输出拆分方案数。