weights и два курьера — первый и второй. Каждую посылку нужно отдать ровно одному из них.
Распределение **годится**, если суммарный вес у каждого курьера не меньше minimum.
Верните количество годных распределений. Два распределения различны, если хотя бы одна посылка досталась разным курьерам. Курьеры различимы: отдать набор первому или второму — разные распределения.
Ответ может быть большим, верните его по модулю 10⁹ + 7.weights=[3, 1, 2], minimum=3 → 2
Всего 6, значит каждому курьеру нужно ровно 3. Первому можно отдать {3} или {1, 2} — два способа.
weights=[4, 4, 4], minimum=5 → 0
Один из курьеров всегда получит одну посылку или ни одной, то есть не больше 4. Способов нет.
weights=[2, 2, 2, 2], minimum=3 → 6
Каждому нужно хотя бы две посылки, поэтому делим 2 на 2: первому курьеру можно выбрать любые две из четырёх — 6 способов.
weights=[3, 1, 2], minimum=3
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 74 теста на сервере, включая скрытые.