#H439. 求和比较【蓝桥杯】
求和比较【蓝桥杯】
题目描述
小蓝在学习 C++ 数组时,突发奇想想知道如果将一个连续的正整数数组拆分成两个子数组,然后对拆分出的两个子数组求和并做差,且差值正好等于一个固定的正整数,像这样同一连续的正整数数组拆分方案有多少种。
我们一起帮助小蓝设计一下规则:
-
给出两个正整数N和M。
-
从1到N组成一个连续正整数数组A(A={1,2,3,4,…,N}) 。
-
将数组A拆分成两个子数组(1. 两个子数组中不能出现相同的数;2. 子数组中的数字可以是连续的也可以是不连续的;3. 拆分出的两个子数组的元素个数可以不同,但总量等于A数组元素的个数)。
-
对两个子数组分别求和。
-
对两个子数组的和做差(大的数字减去小的数字)。
-
如果差值正好等于固定值M,则判定此拆分方案成立。
输入格式
分别输入两个正整数N(3<N<30) 和M(0≤M≤500) ,两个正整数由一个空格隔开。
输出格式
输出一个正整数,表示1到N(包含1和N)连续的正整数数组中有多少种方案,使得拆分的两个子数组部分和的差值等于M。
5 1
3
提示
【样例 1 解释】
N = 5,M = 1,连续正整数数组A={1,2,3,4,5}。符合条件的拆分方案有3种:
={1,2,4},={3,5},其中的和为7,的和为8,和的差值等于1。
={1,3,4},={2,5},其中的和为8,的和为7,和的差值等于1。
={3,4},={1,2,5},其中的和为7,的和为8,和的差值等于1。