堆石子
C++ GESP真题 八级 2026.6 #2
EXY-PG-0231
时间限制:1s 内存限制:512MB

题目描述

有 $m$ 堆石子,编号为 $1,2,⋯,m$,其石子数量分别记为 $a_{1},a_{2},⋯,a_{m}$。

现在要求第 1 堆石子恰有 $n$ 个(即 $a_{1}=n$),并且此后每堆石子的数量严格小于前一堆,即 $a_{i}<a_{i−1}​ (2≤i≤m)$。此外,每堆至少需要有一个石子,即 $a_{i}​≥1 (1≤i≤m)$。

在总石子数量不设限制的情况下,给定 $m≥2,n≥1$,有多少个满足要求的石子堆放方案?

两个方案不同,当且仅当,两个方案中至少有一堆石子数量不同。

如果不存在满足要求的方案,输出 0。由于方案数可能很大,请输出方案数对 $10^{9}+7$ 取模后的结果。

输入格式

输入一行两个正整数 $m$ 和 $n$。

输出格式

输出一个整数,表示总方案数对 $10^{9}+7$ 取模后的结果。

样例说明

样例 1
输入:
3 5
输出:
6
样例解释:

有(5,4,3),(5,4,2),(5,4,1),(5,3,2),(5,3,1)和(5,2,1)共计6种方案。

数据范围