Ctrl K

Брать только с краёв

Средняя
На полке в ряд стоят банки с вареньем, ценность банки i равна values[i]. За один ход можно снять одну банку — самую левую или самую правую из оставшихся. Нужно сделать ровно count ходов. Верните наибольшую суммарную ценность снятых банок.
Пример 1
values=[3, 9, 1, 1, 2, 8], count=3 → 20

Берём две левые банки (3 и 9) и одну правую (8): 20. Взять три с одного края хуже: 13 или 11.

Пример 2
values=[5, 1, 5], count=1 → 5

Одну банку можно взять только с края, обе крайние стоят по 5.

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

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