Разброс длительностей поездок велопроката

тема: Описательная статистика · уровень: средний

Условие

В системе городского велопроката каждая запись содержит идентификатор станции начала поездки и её длительность в минутах. Для части поездок длительность ещё не поступила в систему и обозначена строкой NA.

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

Если для станции из запроса известно k числовых длительностей x_1, x_2, ..., x_k, то их среднее равно μ = (x_1 + x_2 + ... + x_k) / k. Генеральная дисперсия равна D = ((x_1 - μ)^2 + (x_2 - μ)^2 + ... + (x_k - μ)^2) / k, а генеральное стандартное отклонение равно σ = √D. При одинаковых длительностях все такие поездки учитываются отдельно.

Для каждого значения запроса необходимо вывести в отдельной строке сначала D, затем σ. Повторяющиеся идентификаторы в запросе также обрабатываются отдельно. Для каждой запрошенной станции гарантируется хотя бы одна запись с числовой длительностью.

Формат ввода

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

В следующих n строках даны два значения: station_id и duration. station_id — идентификатор станции начала поездки. duration — целая длительность в минутах или строка NA.

Затем дано целое число q — число значений в запросе.

В следующих q строках дано по одному целому числу station_id — идентификатор станции, для которой требуется вычислить показатели.

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

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

Каждое число выводится ровно с двумя знаками после десятичной точки.

Ограничения

1 ≤ n ≤ 2000.

1 ≤ station_id ≤ 500.

Числовая длительность удовлетворяет 1 ≤ duration ≤ 1440.

Строка пропуска имеет вид NA и длину 2 символа.

1 ≤ q ≤ 100.

Для каждого идентификатора из запроса существует хотя бы одна строка с этим идентификатором и числовой длительностью.

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

Куда дальше