Корреляция времени ожидания и оценки
Условие
Провайдер анализирует связь между временем ожидания ответа оператора и оценкой клиента после закрытия заявки.
Во входных данных приведены две таблицы. Первая содержит время ожидания по заявкам, вторая — оценки из опроса. Строки таблиц могут идти в разном порядке. Заявки нужно сопоставить по идентификатору.
Для всех заявок, встречающихся в обеих таблицах и имеющих известную оценку, требуется вычислить коэффициент корреляции Пирсона между временем ожидания x и оценкой y:
r = (Σ((xi − x̄)(yi − ȳ))) / √(Σ((xi − x̄)²) · Σ((yi − ȳ)²)),
где суммы берутся по сопоставленным заявкам, x̄ — среднее время ожидания, ȳ — средняя оценка. Если сопоставленных заявок меньше двух или хотя бы у одного из двух столбцов нулевая дисперсия, коэффициент считается равным 0.
При равенстве идентификаторов строк из двух таблиц они образуют одну пару значений. Внутри каждой таблицы одинаковых идентификаторов не встречается, поэтому вариантов выбора при равенстве нет.
Формат ввода
В первой строке даны два целых числа n и m — количество строк в таблице заявок и количество строк в таблице опросов.
В следующих n строках записаны два целых числа ticket_id и wait_minutes — идентификатор заявки и время ожидания первого ответа оператора в минутах.
В следующих m строках записаны два целых числа ticket_id и score — идентификатор заявки и оценка клиента. Значение score = -1 означает, что клиент не оставил оценку; такая строка не участвует в расчёте.
Формат вывода
Выведите коэффициент корреляции Пирсона с тремя знаками после точки.
Ограничения
1 ≤ n, m ≤ 2000.
1 ≤ ticket_id ≤ 1000000000.
0 ≤ wait_minutes ≤ 1440.
score равно -1 или целому числу от 1 до 5.
Идентификаторы внутри каждой из двух таблиц попарно различны.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается