Самый длинный рост показаний датчика
Условие
В теплице установлены датчики температуры и влажности. Сведения о датчиках хранятся в файле sensors.csv, а отдельные измерения — в файле readings.csv.
Для указанной зоны и указанного типа показаний требуется найти максимальную длину непрерывного участка неубывания среди измерений одного датчика. Измерения каждого датчика предварительно упорядочиваются по времени.
Для последовательности числовых показаний \(x_1, x_2, \ldots, x_l\) участок считается неубывающим, если для каждой пары соседних элементов выполнено \(x_i \le x_{i+1}\). Пропущенное значение не может входить в участок и разрывает его. Требуется вывести наибольшую длину такого участка среди всех датчиков выбранной зоны.
При равенстве соседних показаний неубывание сохраняется: равные значения входят в один участок. Если наибольшая длина достигается у нескольких датчиков, выводится только эта общая длина.
Формат ввода
Рядом с программой находятся два файла в кодировке UTF-8 с разделителем-запятой.
Файл sensors.csv содержит заголовок и 300 строк. Его столбцы:
sensor_id— целочисленный идентификатор датчика;zone— зона теплицы:north,south,east,westилиcenter;model— строковое обозначение модели датчика.
Файл readings.csv содержит заголовок и 1500 строк. Его столбцы:
sensor_id— идентификатор датчика из файлаsensors.csv;timestamp— время измерения в форматеYYYY-MM-DDTHH:MM;temperature— температура в градусах Цельсия или пустая строка при пропуске;humidity— относительная влажность в процентах или пустая строка при пропуске.
В стандартный ввод подаются две строки:
- в первой строке — название зоны;
- во второй строке — имя столбца показаний:
temperatureилиhumidity.
Формат вывода
Выведите одно целое число — максимальную длину непрерывного неубывающего участка.
Дробная часть отсутствует, округление не применяется.
Ограничения
- В файле
sensors.csvровно 300 строк данных. 1 <= sensor_id <= 300.- Длина значения
zoneсоставляет от 4 до 6 символов. - Длина значения
modelсоставляет от 5 до 12 символов. - В файле
readings.csvровно 1500 строк данных. - Каждый идентификатор из
readings.csvсуществует вsensors.csv. - Для каждого датчика имеется ровно 5 измерений.
- Температура при наличии является целым числом от 10 до 45.
- Влажность при наличии является целым числом от 20 до 95.
- Длина неубывающего участка находится в диапазоне от 1 до 5.
- В выбранной зоне всегда есть хотя бы один датчик и хотя бы одно непропущенное показание выбранного типа.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс