Метки режимов по температуре

тема: Кластеризация: k-means · уровень: средний

Условие

Метеостанция использует набор опорных погодных режимов. Каждый режим имеет уникальную текстовую метку и характерную температуру воздуха.

Для новой температуры требуется определить метку ближайшего опорного режима. Расстоянием между температурой запроса x и температурой режима c называется абсолютная разность: d(x, c) = |x - c|.

Некоторые опорные температуры могут быть недоступны и обозначаются строкой NA. Такие режимы не участвуют в сравнении. Гарантируется, что среди опорных режимов есть хотя бы один режим с известной температурой.

Если минимальное расстояние достигается у нескольких режимов, выводится лексикографически наименьшая метка среди них.

Формат ввода

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

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

В следующих q строках записаны целые температуры запросов. Для каждого запроса требуется найти ближайший режим.

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

Выведите q строк. В строке с номером i выведите метку ближайшего режима для запроса с номером i.

Метки выводятся точно в исходном виде, округление чисел не выполняется.

Ограничения

1 ≤ n, 1 ≤ q, n + q ≤ 2000.

Длина каждой метки составляет от 1 до 20 символов. Метки состоят из строчных латинских букв, цифр и символа _, а все метки различны.

Известная температура опорного режима и температура запроса — целые числа от -60 до 60 включительно.

Среди n опорных режимов есть хотя бы одна строка с известной температурой, не равной NA.

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

Куда дальше