Алгоритмы и структуры данных · 9 из 17
Две поездки в один час
У водителя окно до конца смены — столько-то минут. Диспетчер хочет отдать ему две поездки из списка ожидающих так, чтобы обе вместе уложились в окно и заняли его как можно плотнее.
Что сделать
Подберите водителю две поездки, которые как можно плотнее займут окно до конца смены.
Что приходит
dlitelnosti— длительности ожидающих поездок по возрастаниюokno— сколько минут у водителя
Что вернуть
Пару длительностей с наибольшей суммой не больше okno, меньшая первой; поездки — с разных мест списка; ни одна пара не влезает — None.
Допишите функцию para_poezdok в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
Поездки 5, 10, 15, 20, 25 минут, окно 32. Плотнее всего выходит 30 минут — и двумя парами: 5 + 25 и 10 + 20. При равной сумме берётся пара с меньшей первой поездкой: (5, 25).
para_poezdok([5, 10, 15, 20, 25], 32)
(5, 25)
Функция принимает список длительностей поездок (целые, по возрастанию) и размер окна (целое). Возвращает кортеж из двух длительностей — той пары, чья сумма наибольшая среди не превышающих окно. Первой идёт меньшая. Две поездки — это два РАЗНЫХ места в списке; одинаковые длительности на разных местах брать можно. Если ни одна пара не укладывается, возвращается None. Перебирать все пары нельзя: список упорядочен.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.