Đếm mảng

View as PDF

Submit solution

Points: 120.00 (partial)
Time limit: 3.0s
Memory limit: 1024M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Bài toán đơn giản: Hãy đếm xem có bao nhiêu mảng khác nhau ~a_1~,~a_2~,…,~a_n~ trong đó ~a_i~ nhận các giá trị nguyên dương trong đoạn [1,M] sao cho tồn tại ít nhất một đoạn K giá trị liên tiếp giống nhau?. Ở đây hai mảng được gọi là khác nhau nếu như tồn tại ít nhất một vị trí mà giá trị phần tử hai mảng ở vị trí này là khác nhau.

Input:

Một dòng duy nhất chứa ba số nguyên dương n,M,K (1≤n,M,K≤~10^6~)

Output:

Một số nguyên duy nhất là số lượng mảng khác nhau tìm được. Con số này có thể rất lớn nên bạn chỉ cần lấy phần dư của nó khi chia cho ~10^9~+7

Example:

Input

3 2 2

Output

6

Giải thích: Các mảng tìm được là (1, 1, 1), (1, 1, 2), (1, 2, 2), (2, 1, 1), (2, 2, 1), (2, 2, 2)


Comments

Please read the guidelines before commenting.


There are no comments at the moment.