Ctrl K

Апгрейд серверов по площадкам

Средняя
У компании n площадок с серверами. Для площадки i известны четыре числа: - servers[i] — сколько на ней серверов; - upgrade_cost[i] — сколько стоит обновить один сервер; - resale[i] — сколько денег приносит продажа одного сервера; - budget[i] — сколько денег у площадки изначально. На каждой площадке можно продать часть серверов, а на вырученные деньги вместе с бюджетом обновить какие-то из оставшихся. Проданный сервер обновить уже нельзя. Деньги одной площадки нельзя тратить на другой. Верните массив, где для каждой площадки указано наибольшее число серверов, которые на ней можно обновить.
Пример 1
servers=[5, 2], upgrade_cost=[4, 10], resale=[2, 3], budget=[10, 1] → [3, 0]

В первом цехе продаём один сервер: 10 + 2 = 12, этого хватает на апгрейд трёх из оставшихся четырёх (3·4 = 12). Во втором цехе даже продажа одного сервера даёт лишь 1 + 3 = 4 < 10, поэтому ответ 0.

Пример 2
servers=[3], upgrade_cost=[2], resale=[1], budget=[6] → [3]

Денег хватает, чтобы обновить все три сервера, ничего не продавая.

Ограничения
  • 1 ≤ n ≤ 10⁵, все четыре массива длины n
  • 1 ≤ servers[i], upgrade_cost[i], resale[i] ≤ 10⁵
  • 1 ≤ budget[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЦена тает с каждой продажей СредняяКоманды по нарастающей СредняяСтесать простыми до возрастания СредняяВыровнять до палиндрома СредняяБригада срывает холм Средняя
загружаем Python…
Вход
servers=[5, 2], upgrade_cost=[4, 10], resale=[2, 3], budget=[10, 1]
Ожидается
[3, 0]

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