问题 D:求和比较

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判 命题人:
提交:10 解决:4

题目描述

小蓝在学习C++数组时,突发奇想想知道如果将一个连续的正整数数组拆分成两个子数组,然后对拆分出的两个子数组求和并做差,且差值正好等于一个固定的正整数,像这样同一连续的正整数数组拆分方案有多少种。
我们一起帮助小蓝设计一下规则:
      第一, 给出两个正整数 $N$ 和 $M$;
      第二, 从 $1$ 到 $N$ 组成一个连续正整数数组 $A(A=\{1,2,3,4……N\})$;

      第三, 将数组 $A$ 拆分成两个子数组 $A_1,A_2$

            1.两个子数组中不能出现相同的数;

            2.子数组中的数字可以是连续的也可以是不连续的;

            3.拆分出的两组子数组的元素个数可以不同,但总数量等于A数组元素个数);

      第四, 对 $A_1, A_2$ 两个子数组分别求和;
      第五, 对 $A_1, A_2$ 两个子数组的和做差(大的数字减去小的数字);
      第六, 如果差值正好等于固定值 $M$,则判定此拆分方案成立。
如:$N=5,M=1$,连续正整数数组 $A=\{1, 2, 3, 4, 5\}$。
符合条件的拆分方案有 $3$ 种:
      $A_1=\{1, 2, 4\}, A_2=\{3, 5\}$, 其中 $A_1$ 的和为 $7,A_2$ 的和为 $8$,和的差值等于 $1$
      $A_1=\{1, 3, 4\}, A_2=\{2, 5\}$, 其中 $A_1$ 的和为 $8,A_2$ 的和为 $7$,和的差值等于 $1$

      $A_1=\{3, 4\}, A_2=\{1, 2, 5\}$, 其中 $A_1$ 的和为 $7,A_2$ 的和为 $8$,和的差值等于 $1$

输入

输入两个正整数 $N$ 和 $M(3\le N\le 50, 0\le M\le 50)$

输出

输出拆分方案数

样例输入-1 复制

5 1

样例输出-1 复制

3