Ctrl K

Карты энергии и очки

Средняя
В настольной игре у вас есть стартовая энергия energy, 0 очков и колода карт: cards[i] — стоимость i-й карты. Каждую карту можно разыграть не больше одного раза и одним из двух способов: - **купить**: если энергии не меньше cards[i], потратьте cards[i] энергии и получите 1 очко; - **продать**: если у вас есть хотя бы 1 очко, отдайте 1 очко и получите cards[i] энергии. Карты можно разыгрывать в любом порядке, а часть колоды не трогать вовсе. Верните наибольшее число очков, которое можно иметь на руках в какой-то момент игры.
Пример 1
cards=[30, 80, 10, 50], energy=40 → 2

Тратим 10 (энергия 30, очки 1), тратим 30 (энергия 0, очки 2), продаём 80 (энергия 80, очки 1), тратим 50 (энергия 30, очки 2). Больше двух очков не набрать.

Пример 2
cards=[25], energy=20 → 0

Энергии не хватает, а продать карту без очков нельзя — ответ 0.

Пример 3
cards=[5, 5, 5], energy=15 → 3
Ограничения
  • 0 ≤ len(cards) ≤ 1000
  • 0 ≤ cards[i] < 10⁴
  • 0 ≤ energy < 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСтудии для записи СредняяПерестроить середину шеренги СредняяТройки палочек для треугольника СредняяСамая выгодная подработка для каждого СредняяРасстановка против соперников Средняя
загружаем Python…
Вход
cards=[30, 80, 10, 50], energy=40
Ожидается
2

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