Категория с наибольшей медианой времени
Условие
В файле data.csv записаны участники школьной спартакиады и их возрастные категории. В файле events.csv записаны результаты забегов. Каждая строка файла результатов ссылается на участника по его идентификатору.
Для указанной дистанции учитываются только результаты, время которых не превосходит заданный порог. Пустое значение времени означает, что участник не финишировал, и такой результат не учитывается.
Для каждой категории с хотя бы одним учитываемым результатом требуется найти количество результатов и медиану времени. Медианой отсортированного набора из k чисел называется его средний элемент при нечётном k; при чётном k это среднее арифметическое двух центральных элементов. Требуется вывести имя категории с наибольшей медианой времени.
Если наибольшая медиана достигается у нескольких категорий, выводится лексикографически меньшее имя категории. Округление не применяется: выводится только имя категории.
Формат ввода
В стандартный ввод подаются два целых числа через пробел: d и p.
d — дистанция в метрах, результаты которой нужно рассматривать. p — максимальное допустимое время финиша в секундах.
Рядом с программой находятся два файла в кодировке UTF-8 с разделителем-запятой.
Файл data.csv содержит от 300 до 2000 строк данных и заголовок:
participant_id,category
participant_id — целочисленный идентификатор участника. category — название возрастной категории.
Файл events.csv содержит от 300 до 2000 строк данных и заголовок:
participant_id,distance,finish_seconds
participant_id — идентификатор участника из файла data.csv. distance — целая дистанция в метрах. finish_seconds — целое время финиша в секундах или пустая строка.
Формат вывода
Выведите одно имя категории с наибольшей медианой учитываемых времён.
Ограничения
300 <= число строк в data.csv <= 2000.
300 <= число строк в events.csv <= 2000.
1 <= participant_id <= 1000000.
Длина имени категории составляет от 3 до 20 символов.
d принимает одно из значений 400, 800, 1500.
50 <= p <= 600.
50 <= finish_seconds <= 600, если значение времени не пустое.
Для каждого допустимого набора d и p существует хотя бы один учитываемый результат.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует