#11215. 求和比较【蓝桥杯】

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Turing001

题目描述

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

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

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

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

第三将数组 A 拆分成两个子数组 A1、A2

  1. 拆分的两个子数组中不能出现相同的数;
  2. 子数组中的数字可以是连续的也可以是不连续的;
  3. 拆分出的两组子数组的元素个数可以不同,但总数量等于A数组元素个数 ;

第四对 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 (包含1和N) 连续的正整数数组中有多少种方案,使得拆分的两个子数组部分和的差值等于 M

样例

输入样例:

5 1

输出样例:

3

数据范围与提示

蓝桥省12-4