A8293. Weak Subsequence
编程题
普及/提高-
知识点
题目描述
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".
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
说明/提示
In the first sample Petya can buy the following strings: aaa, aab, abab, abb, abba, baa, baab, baba, bba, bbb.