Ближайшие посещения по двум метрикам
Условие
В журнале посещений школьного сайта для каждого визита сохранены число просмотренных страниц и число активных минут. Некоторые значения могут отсутствовать и обозначаются строкой NA.
Дан запрос с характеристиками нового визита и записи прошлых посещений. Необходимо отдельно найти ближайшую запись по манхэттенскому и по евклидову расстояниям.
В расстоянии участвуют только характеристики, известные и у запроса, и у рассматриваемой записи. Манхэттенское расстояние равно сумме модулей разностей по участвующим характеристикам: d_M = Σ |x_i - y_i|. Евклидово расстояние равно d_E = sqrt(Σ (x_i - y_i)^2). Для каждой записи гарантируется, что хотя бы одна характеристика участвует в расчёте.
При равенстве расстояний выбирается запись с меньшим номером во входных данных. Округление не применяется: требуется вывести точные целые номера записей.
Формат ввода
В первой строке дано целое число n — количество записей в журнале.
Во второй строке заданы два значения запроса: pages_viewed и active_minutes.
В следующих n строках заданы характеристики записей журнала в том же порядке: pages_viewed и active_minutes. Номер первой записи равен 1, второй — 2 и так далее.
Каждое значение характеристики является целым числом или строкой NA.
Формат вывода
Выведите через пробел два целых числа: номер ближайшей записи по манхэттенскому расстоянию и номер ближайшей записи по евклидову расстоянию.
Ограничения
1 ≤ n ≤ 2000.
Если значение не равно NA, то 0 ≤ pages_viewed ≤ 200, 0 ≤ active_minutes ≤ 600.
В строке запроса известна хотя бы одна характеристика.
В каждой записи журнала известна хотя бы одна характеристика, совпадающая по известности с характеристикой запроса. Поэтому для каждой записи расстояние определено.
Длина каждого входного значения не превышает 3 символов.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами