Ctrl K

Гирлянда с одинаковыми соседями

Сложная
Гирлянда — это ряд из bulbs лампочек, каждую из которых красят в один из colors цветов (цвета пронумерованы от 1 до colors). Две раскраски различны, если хотя бы одна лампочка в них покрашена по-разному. Сколько существует раскрасок, в которых ровно repeats пар соседних лампочек имеют одинаковый цвет? Ответ может быть очень большим — верните его по модулю 10⁹ + 7. Если нужное число совпадений недостижимо, ответ равен 0.
Пример 1
bulbs=3, colors=3, repeats=1 → 12

Совпадающая пара соседей — либо первые две лампочки, либо последние две. Цвет совпадающей пары можно выбрать тремя способами, а оставшуюся лампочку — двумя (она не должна совпасть с соседкой): 2 · 3 · 2 = 12.

Пример 2
bulbs=4, colors=2, repeats=0 → 2

Соседи всегда разного цвета, значит цвета чередуются: 1, 2, 1, 2 или 2, 1, 2, 1.

Пример 3
bulbs=3, colors=4, repeats=3 → 0

В гирлянде из трёх лампочек всего две пары соседей, трёх совпадений быть не может.

Ограничения
  • 1 ≤ bulbs ≤ 10⁵
  • 1 ≤ colors ≤ 10⁵
  • 0 ≤ repeats ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДегустаторы и испорченная бочка СложнаяЭфир без частых повторов СложнаяПорядок развоза посылок СложнаяЧестный раздел цветных бусин СложнаяДругие порядки для того же дерева поиска Сложная
загружаем Python…
Вход
bulbs=3, colors=3, repeats=1
Ожидается
12

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