#4640. 求和比较(2021年4月stema测评)(2021年04月省二试题)

求和比较(2021年4月stema测评)(2021年04月省二试题)

求和比较

题目描述:

小蓝在学习C++数组时,突发奇想想知道如果将一个连续的正整数数组拆分成两个子数组,然后对拆分出的两个子数组求和并做差,且差值正好等于一个固定的正整数,像这样同一连续的正整数数组拆分方案有多少种。

我们一起帮助小蓝设计一下规则:

第一给出两个正整数N和M;

第二从1到N组成一个连续正整数数组A(A={1,2,3,4......N});

第三将数组A拆分成两个子数组A1、A2(1.两个子数组中不能出现相同的数;2.子数组中的数字可以是连续的也可以是不连续的;3.拆分出的子数组的元素数量不限);

第四对A1、A2两个子数组分别求和;

第五对A1、A2两个子数组的和做差(大的数字减去小的数字);

第六如果差值正好等于固定值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(3<N<30)和M(0≤M≤500),两个正整数由一个空格隔开

输出​​描述​:​输出一个正整数,表示1到N连续的正整数数组中有多少种方案,使得拆分的两个子部分和的差值等于M

​样例输入:​5 1

​样例输出:​3

评分标准:

10分:能正确输出一组数据;

10分:能正确输出两组数据;

20分:能正确输出三组数据;

20分:能正确输出四组数据。

Limitation

1s, 1024KiB for each test case.