Ctrl K

Красота клумб на бюджете

Сложная
Садовник ухаживает за n клумбами. В массиве beds записано, сколько цветов уже растёт на каждой клумбе; выкапывать их нельзя. В запасе у садовника spare рассады — её можно досадить на любые клумбы, потратив не больше spare цветов. Клумба считается готовой, если на ней хотя бы goal цветов. Красота сада складывается из двух частей: - число готовых клумб, умноженное на full_bonus; - наименьшее число цветов среди неготовых клумб, умноженное на partial_bonus (если неготовых клумб нет, эта часть равна 0). Верните наибольшую красоту, которой можно добиться.
Пример 1
beds=[2, 5, 1], spare=4, goal=5, full_bonus=10, partial_bonus=3 → 26

Досадим 3 цветка в первую клумбу и 1 в последнюю: [5, 5, 2]. Две готовые клумбы (2 · 10 = 20) и минимум среди неготовых 2 (2 · 3 = 6) — итого 26. Если вместо этого поднимать минимум, выйдет только 10 + 3 · 3 = 19.

Пример 2
beds=[3, 3], spare=4, goal=5, full_bonus=6, partial_bonus=1 → 12

Хватает ровно на то, чтобы довести обе клумбы до 5: 2 · 6 = 12. Неготовых клумб нет, поэтому вторая часть красоты равна 0.

Пример 3
beds=[1, 1, 1], spare=1, goal=10, full_bonus=100, partial_bonus=2 → 2
Ограничения
  • 1 ≤ n = len(beds) ≤ 10⁵
  • 1 ≤ beds[i], goal ≤ 10⁵
  • 1 ≤ spare ≤ 10¹⁰
  • 1 ≤ full_bonus, partial_bonus ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОбщая настройка с разной ценой шага СложнаяСтудии для записи СредняяТройки палочек для треугольника СредняяСамая выгодная подработка для каждого СредняяПодравнять числа прибавлением Средняя
загружаем Python…
Вход
beds=[2, 5, 1], spare=4, goal=5, full_bonus=10, partial_bonus=3
Ожидается
26

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