#LQ2015. 求和比较

求和比较

题目描述

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

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

第一给出两个正整数NNMM;

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

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

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

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

第六如果差值正好等于固定值 MM,则判定此拆分方案成立

如:N=5M=1N=5,M=1,连续正整数数组 A={1,2,3,4,5)

符合条件的拆分方案有3种:

A1=(124)A2=(35)A1=(1,2,4),A2=(3,5),其中A1的和为7,A2的和为 8,两个子数组和的差值等于1

A1=(134)A2=(25)A1=(1,3,4),A2=(2,5),其中A1的和为 8,A2的和为7,两个子数组和的差值等于1

A1=(34)A2=(125)A1=(3,4),A2=(1,2,5),其中A1的和为7,A2的和为8,两个子数组和的差值等于1

输入

分别输入两个正整数NNMM,两个正整数由一个空格隔开

输出

输出一个正整数,表示11NN(包含11NN)连续的正整数数组中有多少种方案,使得拆分的两个子数组部分和的差值等于MM

5 1
3

提示

3<N<303<N<30

0<=M<=5000<=M<=500