n человек. Организаторы печатают бейджи 40 цветов, цвета пронумерованы от 1 до 40, и каждого цвета хватит на одного человека. likes[i] — список цветов, которые согласен носить i-й участник.
Посчитайте, сколькими способами можно выдать каждому участнику по одному бейджу так, чтобы каждый получил цвет из своего списка и никакие двое не получили одинаковый цвет. Способы различаются, если хотя бы у одного участника разный цвет. Ответ может быть большим — верните его по модулю 10⁹ + 7.likes=[[2, 7], [7], [1, 2]] → 1
Второму достаётся 7, тогда первому — 2, а третьему остаётся только 1. Способ один.
likes=[[5, 6], [5, 6, 9]] → 4
Пары (5, 6), (5, 9), (6, 5) и (6, 9) — 4 способа.
likes=[[3], [3], [1, 2]] → 0
Первые двое согласны только на цвет 3, а одинаковых бейджей быть не может.
n = len(likes)n ≤ 10len(likes[i]) ≤ 40likes[i][j] ≤ 40likes[i] не повторяютсяlikes=[[2, 7], [7], [1, 2]]
1
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 79 тестов на сервере, включая скрытые.