rows рядов, каждый длиной ровно length. Есть кирпичи высотой 1 и длинами из массива pieces (все длины разные); кирпичей каждой длины сколько угодно, поворачивать их нельзя.
Стена считается прочной, если у любых двух соседних рядов стыки между кирпичами не приходятся на одно и то же место. Края стены стыками не считаются.
Посчитайте, сколькими способами можно сложить прочную стену. Способы различаются, если хоть в одном ряду кирпичи идут в другом порядке. Ответ верните по модулю 10⁹ + 7.rows=2, length=4, pieces=[1, 3] → 2
Ряд можно собрать как 1+1+1+1, 1+3 или 3+1. Прочную стену дают только пары «1+3 под 3+1» и «3+1 под 1+3»: у них стыки на расстоянии 1 и 3 от края и не совпадают.
rows=3, length=2, pieces=[2] → 1
Каждый ряд — один кирпич длины 2, внутренних стыков нет, так что стена из трёх таких рядов прочная.
rows=1, length=5, pieces=[3, 4] → 0
Из кирпичей длины 3 и 4 ряд длины ровно 5 не собрать.
rows ≤ 100length ≤ 10pieces.length ≤ 10pieces[i] ≤ 10pieces различныrows=2, length=4, pieces=[1, 3]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 122 теста на сервере, включая скрытые.