Ctrl K

Самый тяжёлый мешок

Средняя
На складе стоят мешки с зерном: sacks[i] — вес i-го мешка в килограммах. Разрешено не более splits раз взять любой мешок и пересыпать его в два новых, в каждом из которых окажется целое положительное число килограммов (например, мешок в 5 кг можно разделить на 1 и 4 или на 2 и 3). Грузчики жалуются на самый тяжёлый мешок. Верните наименьший возможный вес самого тяжёлого мешка после разделений.
Пример 1
sacks=[10], splits=3 → 3

Три разделения дают четыре мешка, например 3, 3, 2, 2 — самый тяжёлый весит 3. Меньше не выйти: 4 мешка по 2 кг вмещают только 8.

Пример 2
sacks=[7, 3, 5], splits=2 → 4

Делим 7 на 4 и 3, а 5 на 4 и 1: мешки 4, 3, 3, 4, 1. Чтобы опустить максимум до 3, понадобилось бы три разделения.

Пример 3
sacks=[2, 6, 1], splits=10 → 1
Ограничения
  • 1 ≤ len(sacks) ≤ 10⁵
  • 1 ≤ sacks[i] ≤ 10⁹
  • 1 ≤ splits ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПоиск в сдвинутом отсортированном массиве СредняяПервая и последняя копия СредняяПоиск в таблице-цепочке СредняяПоиск в сдвинутом массиве с повторами СредняяМинимум в сдвинутом списке Средняя
загружаем Python…
Вход
sacks=[10], splits=3
Ожидается
3

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