Ковариация посылок в пунктах выдачи

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

Условие

В сети пунктов выдачи для каждой записи фиксируются код пункта, среднее время ожидания посылки в часах и число выданных за смену посылок. Иногда один из числовых показателей не был передан системой и записан как NA.

В конце входных данных задан список кодов пунктов выдачи. В расчёт включаются только записи, код которых есть в этом списке и у которых известны оба числовых показателя. Записи с NA необходимо пропустить.

Для оставшихся k записей требуется найти генеральную ковариацию времени ожидания x и числа выданных посылок y:

C = (1 / k) * Σ((x_i - x̄) * (y_i - ȳ)),

где и ȳ — средние значения соответствующих показателей по включённым в расчёт записям. Затем требуется вывести значение ковариации и направление связи: положительная, если C > 0, отрицательная, если C < 0, и нулевая, если C = 0.

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

Формат ввода

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

В следующих n строках даны код пункта выдачи, время ожидания и число выданных посылок через пробел. Вместо времени ожидания или числа посылок может стоять строка NA.

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

В следующих q строках даны коды пунктов выдачи из запроса.

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

Выведите ковариацию с двумя знаками после точки, затем через пробел направление связи.

Округление выполняется до двух знаков после точки по правилу ближайшего значения. Если третья цифра после точки равна 5, модуль числа округляется в большую сторону.

Ограничения

1 ≤ n ≤ 2000.

1 ≤ q ≤ 50.

Длина кода пункта выдачи составляет от 1 до 12 символов из латинских заглавных букв и цифр.

Если значение не равно NA, то время ожидания является целым числом от 0 до 720, а число выданных посылок — целым числом от 0 до 5000.

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

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

Куда дальше