Регион с наибольшей средней температурой
Условие
Файл data.csv содержит сведения погодной сети. В файле есть три типа строк: строки со справочником населённых пунктов, строки со справочником станций и строки с измерениями температуры.
Каждое измерение связано со станцией по полю station_id. Станция связана с населённым пунктом по полю locality_id, а населённый пункт содержит название региона в поле region_name. Таким образом, регион измерения определяется двумя последовательными соединениями справочников.
Для месяца из stdin требуется определить регион с наибольшей средней температурой. Для региона r средняя температура вычисляется по формуле \(\overline{x}_r = \frac{\sum x_i}{k_r}\), где сумма берётся по всем непустым значениям temperature_c измерений указанного месяца, относящихся к региону r, а \(k_r\) — количество таких значений. Строки с пустым temperature_c считаются пропусками и в сумму и количество не входят.
Гарантируется, что для каждого региона есть хотя бы одно непустое измерение в каждом допустимом месяце. Если наибольшая средняя температура достигается у нескольких регионов, выводится лексикографически меньшее имя региона.
Округление не применяется, поскольку ответом является имя региона.
Формат ввода
В каталоге с программой находится файл data.csv в кодировке UTF-8 с разделителем-запятой и заголовком:
record_type,station_id,locality_id,region_name,date,temperature_c
Поле record_type имеет одно из значений locality, station или reading.
У строк типа locality заполнены поля locality_id и region_name. У строк типа station заполнены поля station_id и locality_id. У строк типа reading заполнены поля station_id, date и temperature_c; значение temperature_c может быть пустым.
В stdin подаётся одна строка с месяцем в формате YYYY-MM.
Формат вывода
Выведите имя региона с наибольшей средней температурой за указанный месяц.
Ограничения
В файле от 300 до 4000 строк данных без учёта заголовка.
Длина station_id составляет от 3 до 12 символов, длина locality_id — от 3 до 12 символов, длина region_name — от 3 до 40 символов. Поле date имеет формат YYYY-MM-DD. Значение temperature_c является десятичным числом от -50.0 до 60.0 с не более чем одним знаком после точки либо пустой строкой. Месяц из stdin имеет формат 2025-MM, где MM — целое число от 01 до 12.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс