Ctrl K

Очки без соседей

Средняя
На столе лежат карточки с числами — массив values. За один ход можно взять любую карточку и получить столько очков, сколько на ней написано. После этого все карточки со значениями на единицу меньше и на единицу больше взятой сгорают и больше не приносят очков. Ходы можно делать сколько угодно раз. Верните наибольшее число очков, которое можно набрать.
Пример 1
values=[4, 10, 5, 4] → 18

Забираем обе четвёрки (5 при этом сгорает) и десятку: 4 + 4 + 10 = 18. Если начать с 5, сгорят обе четвёрки, и выйдет только 15.

Пример 2
values=[1, 1, 2, 3, 3, 3] → 11

Выгоднее пожертвовать двойкой: единицы дают 2 очка, тройки — 9, всего 11.

Ограничения
  • 1 ≤ len(values) ≤ 2·10⁴
  • 1 ≤ values[i] ≤ 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазбиение на слова из словаря СредняяСлова, спрятанные в тексте СредняяДеревья из произведений СредняяСамая длинная цепочка сумм СредняяСамая длинная цепочка с равным шагом Средняя
загружаем Python…
Вход
values=[4, 10, 5, 4]
Ожидается
18

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