Распределение энергии по делам

Задача по программированию с проверкой онлайн

Сложность
Сложная
Языки
Python
JavaScript
TypeScript
Java
Go
Темы
Стек, очередь, связные списки
Математика

У вас расписан день: дела идут в фиксированном порядке, у i-го дела ценность values[i]. Утром у вас max_energy единиц энергии — это и запас, и потолок. На каждое дело вы тратите любое целое неотрицательное количество энергии, но не больше, чем есть сейчас; выгода от дела — его ценность, умноженная на потраченную энергию. После каждого дела вы восстанавливаете regain единиц, но энергии никогда не бывает больше max_energy (лишнее пропадает).

Верните наибольшую суммарную выгоду за день. Ограничения: 1 ≤ max_energy, regain ≤ 10⁶, дел от 1 до 10⁴, ценности от 1 до 10⁴.

Пример: 5, 2, [1, 2] → 12 (2 единицы на первое дело, восстановиться до 5 и потратить их на второе).


Источник: Coding Competitions Archive, codejam/2013/round_1a/manage_your_energy · © Google LLC · Apache-2.0 · условие переведено и дополнено

Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Ещё задачи

Все задачи для тренировки