Очистка длительностей парковки по секциям

тема: Пропуски, дубликаты, выбросы · уровень: продвинутый

Условие

Система парковки торгового центра хранит длительность стоянки автомобиля в минутах для каждой секции. В некоторых записях длительность неизвестна: вместо числа указано -.

Для каждой секции из запроса требуется отдельно очистить известные длительности от выбросов по правилу 1.5 IQR, а затем определить число отброшенных записей и среднюю длительность среди оставшихся записей.

Для секции с m известными длительностями значения сортируются по неубыванию. Первый квартиль Q1 равен элементу с номером ceil(m / 4), а третий квартиль Q3 равен элементу с номером ceil(3m / 4), где нумерация начинается с 1. Межквартильный размах равен IQR = Q3 - Q1. Значение x считается выбросом, если x < Q1 - 1.5 * IQR или x > Q3 + 1.5 * IQR.

Значения с длительностью - не участвуют ни в вычислении квартилей, ни в числе отброшенных записей, ни в среднем. Значения, равные границе допустимого интервала, не считаются выбросами. Для каждой запрошенной секции гарантируется хотя бы одна известная длительность, а после удаления выбросов остаётся хотя бы одна длительность.

Формат ввода

В первой строке даны два целых числа n и q — число записей парковки и число секций в запросе.

В следующих n строках даны название секции и длительность стоянки через пробел. Длительность задаётся целым числом минут или символом -.

В последних q строках даны названия секций из запроса. Для каждого названия требуется вывести результат в том же порядке. Названия секций в запросе могут повторяться.

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

Для каждой секции из запроса выведите в отдельной строке два значения через пробел: число отброшенных выбросов и среднюю длительность среди остальных известных записей.

Среднюю длительность выводите ровно с двумя знаками после точки.

Ограничения

1 <= n <= 4000.

1 <= q <= 4000.

Название секции состоит из латинских букв, цифр и символа _, его длина от 1 до 20.

Известная длительность стоянки — целое число от 0 до 1440.

Каждая секция из запроса встречается среди записей хотя бы один раз с известной длительностью.

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

Куда дальше