Самая длинная серия неубывающего темпа
Условие
В файле 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.
В стандартный ввод подаются две строки:
- в первой строке записано имя бегуна
runner; - во второй строке записаны два целых числа
left_dayиright_day— границы диапазона дней включительно.
Гарантируется, что указанное имя есть в файле, 1 <= left_day <= right_day <= 120, а для этого бегуна в файле есть запись каждого дня от 1 до 120.
Формат вывода
Выведите одно целое число — длину самого длинного подходящего участка.
Выведите целое число без дробной части. Округление не требуется.
Ограничения
- В файле от
300до2000строк, в данном наборе данных —360строк. - Длина имени бегуна
runner: от3до20символов. day— целое число от1до120.pace_seconds— пустая строка либо целое число от280до600.distance_km— вещественное число от3.0до25.0с двумя знаками после точки.1 <= left_day <= right_day <= 120.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами