Ctrl K

Книги по нарастающей

Сложная
Книжный стеллаж состоит из n полок, на i-й полке стоит shelves[i] книг. Выберите непрерывный отрезок полок l..r (0 ≤ l ≤ r < n) и возьмите книги с каждой полки этого отрезка. Правило одно: с каждой полки i при l ≤ i < r нужно взять **строго меньше** книг, чем со следующей полки i + 1. С полки нельзя взять больше, чем на ней стоит, но можно взять и ноль. Верните наибольшее число книг, которое можно унести.
Пример 1
shelves=[4, 1, 5, 6] → 12

Берём полки с 0 по 3: 0, 1, 5 и 6 книг. С полки 0 приходится взять 0, потому что с полки 1 взята всего одна. Итого 12.

Пример 2
shelves=[3, 3, 3] → 6

Берём 1, 2 и 3 книги, всего 6.

Пример 3
shelves=[0] → 0
Ограничения
  • 1 ≤ n = len(shelves) ≤ 10⁵
  • 0 ≤ shelves[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВода между стенами СложнаяСамый большой горящий блок СложнаяЛягушка на столбиках СложнаяПодъём отрезками СложнаяДальние прыжки по полю Сложная
загружаем Python…
Вход
shelves=[4, 1, 5, 6]
Ожидается
12

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