Ближайший автор отзыва
Условие
В магазине мобильных приложений опубликованы отзывы пользователей. В первой таблице хранится номер каждого отзыва и поставленная пользователем оценка. Во второй таблице хранятся показатели активности тех же пользователей.
Строки второй таблицы могут идти в другом порядке. Номер отзыва является ключом: показатели активности нужно сопоставить с отзывом с таким же номером.
Для нового пользователя известны число дней использования приложения и число обращений в поддержку. Требуется найти номер отзыва пользователя, наиболее близкого к новому по этим двум показателям. Используется евклидово расстояние: для показателей (a, b) и (x, y) оно равно sqrt((a - x)^2 + (b - y)^2).
Если у пользователя в таблице активности хотя бы один показатель равен -1, показатель считается пропущенным, и такой пользователь не участвует в поиске. Гарантируется, что хотя бы у одного пользователя оба показателя известны. Если наименьшее расстояние достигается у нескольких отзывов, нужно вывести наименьший номер отзыва.
Формат ввода
В первой строке дано целое число n — количество опубликованных отзывов.
В следующих n строках дана первая таблица: два целых числа review_id и rating — номер отзыва и оценка пользователя.
В следующих n строках дана вторая таблица: три целых числа review_id, days и tickets — номер отзыва, число дней использования приложения и число обращений в поддержку. Строки этой таблицы могут быть переставлены.
В последней строке даны два целых числа new_days и new_tickets — показатели нового пользователя.
Формат вывода
Выведите одно целое число — номер ближайшего отзыва.
Округление не применяется, так как ответ является целым номером отзыва.
Ограничения
1 <= n <= 1000.
1 <= review_id <= 10^9, все номера отзывов в первой таблице различны.
1 <= rating <= 5.
Во второй таблице каждый номер отзыва из первой таблицы встречается ровно один раз.
days и tickets равны -1 либо целому числу от 0 до 10^6.
0 <= new_days, new_tickets <= 10^6.
Хотя бы в одной строке второй таблицы оба значения days и tickets не равны -1.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- БВИ по олимпиадам: в какие вузы берут — правила приёма вузов, разобранные построчно, со ссылкой на приказ у каждой строки
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам