Ближайший результат после стандартизации
Условие
На школьной спартакиаде для каждого участника записаны результат забега в сотых долях секунды и пульс после финиша. В некоторых карточках одно из измерений отсутствует и обозначается NA.
Организаторы получили ЗАПРОС с результатом и пульсом нового участника. Требуется определить ближайшего участника двумя способами: по исходным величинам и после стандартизации признаков z-оценкой.
Пусть для признака j имеются значения у m_j участников. Его среднее и стандартное отклонение определяются формулами μ_j = (x_1 + x_2 + ... + x_mj) / m_j и σ_j = sqrt(((x_1 - μ_j)^2 + ... + (x_mj - μ_j)^2) / m_j). Это генеральное, а не выборочное стандартное отклонение. Для участника i и ЗАПРОСА рассматриваются только признаки, известные у обоих. Если множество таких признаков равно J_i, то исходное расстояние равно d_i = sqrt(Σ по j из J_i (x_ij - q_j)^2), а стандартизованное расстояние равно z_i = sqrt(Σ по j из J_i ((x_ij - q_j) / σ_j)^2).
Если у признака нет известных значений или его стандартное отклонение равно нулю, вклад этого признака в стандартизованное расстояние считается равным нулю. Участник, не имеющий ни одного общего с ЗАПРОСОМ известного признака, не рассматривается. Гарантируется, что существует хотя бы один рассматриваемый участник. При равенстве расстояний выбирается участник, чья строка раньше во входных данных.
Формат ввода
В первой строке дано целое число n — количество участников.
В следующих n строках записаны три значения: номер участника, результат забега в сотых долях секунды и пульс после финиша. Вместо результата или пульса может стоять строка NA.
В последней строке записано слово ЗАПРОС, затем результат забега и пульс нового участника. Вместо каждого из двух значений также может стоять NA.
Формат вывода
Выведите два целых числа через пробел: номер ближайшего участника по исходному расстоянию, затем номер ближайшего участника по стандартизованному расстоянию.
Округление не применяется, так как выводятся номера участников.
Ограничения
1 ≤ n ≤ 4000.
Номера участников — различные целые числа от 1 до 999999.
Каждый известный результат забега — целое число от 300 до 10000.
Каждый известный пульс — целое число от 40 до 240.
Строка NA имеет длину 2. Других строковых значений во входе нет.
В строке ЗАПРОС задан хотя бы один известный признак. Хотя бы у одного участника есть общий с ЗАПРОСОМ известный признак.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому