Оценки опубликованных отзывов
Условие
В сервисе мобильного приложения хранятся две таблицы. Первая таблица содержит оценки всех полученных отзывов. Вторая таблица содержит идентификаторы отзывов, опубликованных в магазине приложений.
Некоторые оценки в первой таблице отсутствуют и обозначаются строкой NA. Перед расчётом необходимо заменить каждую отсутствующую оценку медианой столбца оценок первой таблицы. В медиану входят только известные оценки из первой таблицы, включая оценки отзывов, которые не опубликованы.
Медиана набора чисел определяется так: после сортировки набора при нечётном количестве чисел это центральное число, а при чётном количестве чисел это среднее арифметическое двух центральных чисел. После замены пропусков требуется найти среднее арифметическое оценок отзывов, идентификаторы которых есть во второй таблице.
При равенстве оценок никакой дополнительный выбор не выполняется: каждое равное значение учитывается отдельно. Гарантируется, что в первой таблице есть хотя бы одна известная оценка, а во второй таблице есть хотя бы одна строка.
Формат ввода
В первой строке записаны два целых числа n и m — количество строк в таблице всех отзывов и количество строк в таблице опубликованных отзывов.
В следующих n строках записаны идентификатор отзыва review_id и его оценка rating, разделённые пробелом. Оценка — целое число от 1 до 5 либо строка NA.
В следующих m строках записаны идентификатор опубликованного отзыва review_id и название канала публикации channel, разделённые пробелом. Для каждого идентификатора из второй таблицы существует ровно одна строка в первой таблице.
Формат вывода
Выведите среднее арифметическое оценок опубликованных отзывов после замены пропусков, ровно с двумя знаками после точки.
Ограничения
1 ≤ n ≤ 2000.
1 ≤ m ≤ n.
Длина каждого review_id — от 1 до 12 символов. Идентификаторы в первой таблице различны, идентификаторы во второй таблице также различны.
Длина каждого channel — от 1 до 20 символов.
Каждая известная оценка rating является целым числом от 1 до 5.
В первой таблице есть хотя бы одна известная оценка.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует