Здравствуйте, мне нужна помощь по следующей проблеме:
у нас есть m
воздушных шаров и неограниченное количество конфет.
Какой-то ребенок хочет, чтобы мы давали ему ni
воздушных шаров в каждый i
день (массив * 1006)*).
У него также есть массив налогов b
- который является налогом bi
в день i
.
Если мы дадим ребенку ni
воздушных шаров в день i
, он будет счастлив. Если мы даем k
воздушных шаров k < ni
в день i
, мы должны дать ребенку (ni - k)*bi
конфеты.
Мы должны давать воздушные шары таким образом, чтобы минимизировать максимальное количество конфет, которые мы даем наДАННЫЙ ДЕНЬ.
Пример:
у нас есть 6
шары (m = 6)
n = 1, 3, 3, 3, 2
b = 4, 1, 5, 3, 7
мы даем шары следующим образом
g = 0, 0, 2, 2, 2
Таким образом, мы имеемчтобы дать максимум (3 -2) * 5 = 5
в день 3 (индексирование начинается с 1).
Пожалуйста, помогите мне найти эффективное решение этой проблемы. Мое текущее решение жадно, удаляя один шарик за раз, но слишком медленно, потому что m < 10^18
. ai < 10^9 bi < 10^9 n < 10^5