Ctrl K

Эфир без частых повторов

Сложная
Ведущий радиоэфира готовит программу ровно из length треков. В фонотеке songs различных треков, и программа должна удовлетворять двум правилам: - каждый трек фонотеки прозвучит хотя бы раз; - трек можно поставить повторно, только если после его последнего звучания прошло не меньше gap других треков. Сколько различных программ можно составить? Программы различны, если на какой-то позиции стоят разные треки. Ответ может быть большим, верните его по модулю 10⁹ + 7.
Пример 1
songs=2, length=4, gap=1 → 2

Трек можно повторить только после одного другого, поэтому треки чередуются: [1, 2, 1, 2] и [2, 1, 2, 1].

Пример 2
songs=3, length=4, gap=2 → 6

Первые три позиции — любая перестановка трёх треков (6 вариантов), а четвёртым может быть только первый трек: с момента его звучания прошло ровно два других.

Пример 3
songs=3, length=3, gap=0 → 6
Ограничения
  • 0 ≤ gap < songs ≤ length ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДегустаторы и испорченная бочка СложнаяПорядок развоза посылок СложнаяЧестный раздел цветных бусин СложнаяДругие порядки для того же дерева поиска Сложнаяk-й маршрут по алфавиту Сложная
загружаем Python…
Вход
songs=2, length=4, gap=1
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 91 тест на сервере, включая скрытые.