Ctrl K

Бригада срывает холм

Средняя
Холм высотой height метров нужно срыть до нуля. Работает бригада, все рабочие трудятся одновременно и независимо. Рабочий i с темпом paces[i] тратит на первый снятый им метр paces[i] секунд, на второй — 2 · paces[i], на третий — 3 · paces[i] и так далее: то есть на x метров у него уходит paces[i] · (1 + 2 + … + x) секунд. Распределите метры между рабочими (кому-то можно не дать ни одного) так, чтобы холм исчез как можно раньше. Верните минимальное число секунд до момента, когда закончит последний рабочий.
Пример 1
height=6, paces=[1, 4] → 12

Первый рабочий снимает 4 метра за 1 + 2 + 3 + 4 = 10 секунд, второй — 2 метра за 4 + 8 = 12 секунд. Быстрее чем за 12 не выйдет: если первый возьмёт 5 метров, ему понадобится 15 секунд.

Пример 2
height=3, paces=[2, 2, 2] → 2

Каждый снимает по одному метру за 2 секунды, все работают одновременно.

Пример 3
height=4, paces=[5] → 50
Ограничения
  • 1 ≤ height ≤ 10⁵
  • 1 ≤ len(paces) ≤ 10⁴
  • 1 ≤ paces[i] ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЦена тает с каждой продажей СредняяПлан осушения прудов СредняяОдни призы, разные вкусы СредняяСжать квадраты разностей СредняяКоманды по нарастающей Средняя
загружаем Python…
Вход
height=6, paces=[1, 4]
Ожидается
12

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