Самая длинная серия неубывающего темпа

тема: Временные ряды и окна · уровень: средний

Условие

В файле data.csv хранится дневник тренировок трёх бегунов за тренировочный сезон. Каждая строка соответствует одному дню одного бегуна. Строки в файле упорядочены сначала по имени бегуна, затем по номеру дня.

Темп тренировки задан количеством секунд на километр: чем больше значение, тем медленнее был бег. Некоторые значения темпа пропущены. Пропущенный темп не может входить в участок и разрывает любой участок, проходящий через этот день.

Для указанного бегуна и диапазона дней требуется найти длину самого длинного подряд идущего участка дней с заполненным неубывающим темпом. Участок из дней a, a+1, ..., b подходит, если для каждого дня темп указан и выполняется pace[a] <= pace[a+1] <= ... <= pace[b]. Требуется вывести максимальное значение b - a + 1 среди всех подходящих участков. Если максимальная длина достигается у нескольких участков, всё равно выводится это общее значение длины. Если соседние значения темпа равны, оба дня входят в один неубывающий участок.

Если в выбранном диапазоне нет ни одного дня с указанным темпом, длина равна 0.

Формат ввода

Рядом с программой расположен файл data.csv в кодировке UTF-8 с разделителем запятая и заголовком. В файле содержатся столбцы runner, day, pace_seconds, distance_km.

В стандартный ввод подаются две строки:

Гарантируется, что указанное имя есть в файле, 1 <= left_day <= right_day <= 120, а для этого бегуна в файле есть запись каждого дня от 1 до 120.

Формат вывода

Выведите одно целое число — длину самого длинного подходящего участка.

Выведите целое число без дробной части. Округление не требуется.

Ограничения

Решить задачу с автопроверкой на Python →

Куда дальше