Сходи до Місяця
Обмеження: 2 сек., 256 МіБ
Коли настала ніч, Марічка справді захотіла подивитися на блакитний кривавий супермісяць. Щоб його краще було видно, вони із Зеником вирішили вилізти на дах будинку. На жаль, ліфт був зламаний, і їм довелося йти сходами. Поки наші друзі піднімалися, Марічка думала про Місяць, а Зеник придумав задачу.
Нехай усього Зенику потрібно піднятися на \(n\) сходинок. За один крок він може подолати довільну кількість сходинок від 1 до \(n\). Назвемо довжиною кроку кількість сходинок, подоланих за цей крок. У Зеника є правило — різниця між найдовшим та найкоротшим кроком не може перевищувати \(k\).
Потрібно знайти, скількома способами можна подолати \(n\) сходинок так, щоб правило Зеника виконувалося. Оскільки відповідь може бути дуже великою, виведіть її за модулем простого числа \(10^9+7\) (остачу від ділення на \(10^9+7\)).
Вхідні дані
У єдиному рядку задано два цілих числа \(n\) і \(k\) — кількість сходинок і найбільшу дозволену різницю між довжинами кроків.
Вихідні дані
У єдиному рядку виведіть ціле число — кількість способів пройти \(n\) сходинок за модулем \(10^9 + 7\).
Обмеження
\(1 \le n, k \le 100\).
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
4 1 | 6 |
Примітки
У прикладі всього є 8 способів подолати сходинки: \([1, 1, 1, 1]\), \([1, 1, 2]\), \([1, 2, 1]\), \([1, 3]\), \([2, 1, 1]\), \([2, 2]\), \([3, 1]\), \([4]\). Способи \([1, 3]\) та \([3, 1]\) не підходять Зенику, оскільки ріниця між максимальним та мінімальним кроками є \(3-1 = 2\), що більше за 1.
Надіслати розв'язок
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|