Ctrl K

Растущая копилка наград

Средняя
Дан массив rewards — награды, лежащие на столе. Изначально в копилке 0 очков. Награды можно брать по одной в любом порядке, но каждую — не больше одного раза. Награду со значением v разрешено взять, только если v **строго больше** текущей суммы в копилке; тогда v добавляется к сумме. Брать все награды не обязательно. Верните наибольшую сумму, которую можно накопить.
Пример 1
rewards=[2, 5, 3, 3] → 8

Берём 2 (2 > 0), затем 3 (3 > 2) — сумма 5; после этого 5 уже не больше 5. Можно иначе: 3, затем 5 — сумма 8, и это лучший вариант.

Пример 2
rewards=[4, 4, 4] → 4

Первая четвёрка берётся, а каждая следующая уже не больше накопленных 4.

Пример 3
rewards=[1, 7, 2, 9, 4] → 17
Ограничения
  • 1 ≤ len(rewards) ≤ 2000
  • 1 ≤ rewards[i] ≤ 2000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньше всего прыжков до конца СредняяСамая прибыльная серия дней СредняяДобраться до последней клетки СредняяМаршруты тележки по складу СредняяДешёвый маршрут из угла в угол Средняя
загружаем Python…
Вход
rewards=[2, 5, 3, 3]
Ожидается
8

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