Клиент Яндекс Доставки заказал грузовое такси на переезд: weights[i] — вес i-го места в килограммах, грузоподъёмность машины capacity. Каждое место весит не больше capacity, делить места нельзя.
Верните минимальное число рейсов, за которое можно перевезти всё.
В работе: Упаковка в контейнеры при малом n: партии задач на воркер, грузы по машинам, файлы по дискам.
Пример 1
Ввод
weights = [60, 40, 70, 30, 50] capacity = 100
Вывод
3
60 + 40, 70 + 30, 50 — три рейса. Меньше нельзя: сумма 250.
Пример 2
Ввод
weights = [100] capacity = 100
Вывод
1
Ограничения
- 1 ≤ n ≤ 16
- 1 ≤
weights[i]≤capacity≤ 10⁹ - Лимит — 3 с на тест (3000 мс).
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def min_trips(weights, capacity):
Источник: наша задача на данных Яндекса. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.