Бегуны выше среднего по выбранным тренировкам

тема: Таблицы: фильтр и группировка · уровень: средний

Условие

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

После всех записей указан запрос: один или несколько типов тренировок. Учитываются только записи, тип которых указан в запросе. Записи с дистанцией NA при вычислениях не учитываются.

Для каждого бегуна с хотя бы одной известной дистанцией среди выбранных типов вычисляется средняя дистанция: \(\text{среднее} = \frac{\text{сумма известных дистанций бегуна}}{\text{число его известных дистанций}}\). Общее среднее вычисляется по всем известным дистанциям в выбранных записях по той же формуле. Требуется вывести имена бегунов, чья средняя дистанция строго больше общего среднего, в алфавитном порядке.

При равенстве средней дистанции бегуна и общего среднего бегун не выводится. Если у нескольких подходящих бегунов одинаковые средние дистанции, их имена всё равно выводятся в алфавитном порядке. Гарантируется, что среди записей с типами из запроса есть хотя бы одна известная дистанция. Бегун, у которого среди выбранных типов есть только значения NA, не выводится.

Формат ввода

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

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

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

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

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

Выведите имена подходящих бегунов, по одному в строке, в алфавитном порядке.

Если подходящих бегунов нет, выведите единственную строку NONE.

Округление не применяется: сравнение средних выполняется по точным значениям.

Ограничения

1 ≤ n ≤ 2000.

1 ≤ q ≤ 8.

Имя бегуна и тип тренировки состоят из строчных латинских букв, их длина от 3 до 12 символов.

Известная дистанция является целым числом: 1 ≤ distance ≤ 100000.

Количество различных типов тренировок во входных данных не превышает 8.

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

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

Куда дальше