11559. Значення функції


Відправити розв'язок

Бали: 100
Time limit: 3.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Для цілих невід’ємних чисел \(n\) і \(m\) визначимо функцію \(f(n, m)\) таким чином, використовуючи ціле додатне число \(K\).

  • \(\displaystyle f(n, m) = \begin{cases} 0 & (n = 0) \\ n^K & (n \gt 0, m = 0) \\ f(n-1, m) + f( n, m-1) & (n \gt 0, m \gt 0) \end{cases}\)

Для даних \(N\), \(M\) та \(K\) знайдіть \(f(N, M)\) за модулем \((10 ^ 9 + 7)\).

Формат вхідних даних

Вхідний потік містить цілі числа \(N, M, K\) (\(0 \le N \le 10^{18}\), \(0 \le M \le 30\), \(1 \le K \le 2.5 \times 10^6\))

Формат вихідних даних

У вихідний потік виведіть шукане значення функції.

Примітка

До прикладу 1:

Приклад вхідних даних

3 4 2

Приклад вихідних даних

35

Приклад вхідних даних

0 1 2

Приклад вихідних даних

0

Приклад вхідних даних

1000000000000000000 30 123456

Приклад вихідних даних

297085514

Коментарі

Ще немає коментарів.