Ctrl K

Отрезки с минимумом в начале

Сложная
Датчик записал ряд показаний levels. Назовём непрерывный отрезок ряда *устойчивым*, если его первое показание не больше любого другого показания этого отрезка. Посчитайте, сколько непустых устойчивых отрезков есть в ряду. Отрезки с разными границами считаются разными, даже если их значения совпадают. Отрезок из одного элемента всегда устойчив. Перебор всех отрезков работает за O(n²) — попробуйте быстрее.
Пример 1
levels=[3, 5, 4, 1] → 6

Подходят [3], [5], [4], [1], [3, 5], [3, 5, 4] и [5, 4] не подходит (4 < 5) — итого 6.

Пример 2
levels=[7, 7] → 3

[7], [7] и [7, 7]: равные значения не мешают — 3 отрезка.

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

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