题库练习 Weak Subsequence
← 上一题 下一题 →

A8293 | Weak Subsequence

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Little Petya very much likes strings. Recently he has received a voucher to purchase a string as a gift from his mother. The string can be bought in the local shop. One can consider that the shop has all sorts of strings over the alphabet of fixed size. The size of the alphabet is equal to $k$ . However, the voucher has a string type limitation: specifically, the voucher can be used to purchase string $s$ if the length of string's longest substring that is also its weak subsequence (see the definition given below) equals $w$ .

String $a$ with the length of $n$ is considered the weak subsequence of the string $s$ with the length of $m$ , if there exists such a set of indexes $1<=i_{1}<i_{2}<...<i_{n}<=m$ , that has the following two properties:

- $a_{k}=s_{ik}$ for all $k$ from $1$ to $n$ ;
- there exists at least one such $k$ ( $1<=k<n$ ), for which $i_{k+1}–i_{k}>1$ .

Petya got interested how many different strings are available for him to purchase in the shop. As the number of strings can be very large, please find it modulo $1000000007$ ( $10^{9}+7$ ). If there are infinitely many such strings, print "-1".

输入格式

The first line contains two integers $k$ ( $1<=k<=10^{6}$ ) and $w$ ( $2<=w<=10^{9}$ ) — the alphabet size and the required length of the maximum substring that also is the weak subsequence, correspondingly.

输出格式

Print a single number — the number of strings Petya can buy using the voucher, modulo $1000000007$ ( $10^{9}+7$ ). If there are infinitely many such strings, print "-1" (without the quotes).

输入输出样例

输入 #1
2 2
输出 #1
10
输入 #2
3 5
输出 #2
1593
输入 #3
2 139
输出 #3
717248223
C++ 编辑器
输入
输出