Ctrl K

Плоты на двоих

Средняя
Группу туристов нужно переправить через реку. Вес i-го туриста — weights[i]. Плотов сколько угодно, но на каждый садится не больше двух человек, и их суммарный вес не должен превышать capacity. Верните наименьшее число плотов, которых хватит, чтобы переправить всех.
Пример 1
weights=[70, 50, 80, 40], capacity=120 → 2

80 и 40 помещаются вместе (120), 70 и 50 — тоже (120): хватит двух плотов.

Пример 2
weights=[60, 90, 30, 100], capacity=100 → 3

100 и 90 едут по одному. 60 и 30 весят 90 и помещаются вместе. Итого три плота.

Пример 3
weights=[5, 5, 5], capacity=10 → 2

На плот садятся максимум двое, поэтому третьему нужен отдельный плот.

Ограничения
  • 1 ≤ len(weights) ≤ 5·10⁴
  • 1 ≤ weights[i] ≤ capacity ≤ 3·10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСтудии для записи СредняяПерестроить середину шеренги СредняяТройки палочек для треугольника СредняяСамая выгодная подработка для каждого СредняяРасстановка против соперников Средняя
загружаем Python…
Вход
weights=[70, 50, 80, 40], capacity=120
Ожидается
2

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