A170440.皓仔看星星

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

皓仔喜欢看星星,因此他给自己起了一个昵称 —— Stars_Seekers
现在皓仔正在观察夜空。夜空中一共有 nn 颗星星,每颗星星都有一个唯一的名字,以及一个平面坐标 (xi,yi)(x_i,y_i)。

皓仔选中了其中一颗名字为 zz 的星星。现在,他想按照其他星星与星星 zz 之间的距离,对全部 nn 颗星星进行排序。

对于坐标为 (xi,yi)(x_i,y_i) 的星星,它与星星 zz 的距离为:

(xi−xz)2+(yi−yz)2\sqrt{(x_i-x_z)^2+(y_i-y_z)^2}

排序规则如下:

  1. 距离较小的星星排在前面。
  2. 如果两颗星星与星星 zz 的距离相同,则名字字典序较小的星星排在前面。

请按照排序后的顺序,输出所有星星的名字。

输入格式

第一行输入一个整数 nn,表示星星的数量。

接下来 nn 行,每行输入一个字符串 nameiname_i 和两个整数 xi,yix_i,y_i,分别表示一颗星星的名字和坐标。

最后一行输入一个字符串 zz,表示皓仔选中的星星名字。

输出格式

输出一行,共 nn 个星星名字,表示排序后的结果。

相邻两个名字之间用一个空格隔开,行末不输出多余空格。

输入输出样例

  • 输入#1

    5
    polaris 0 0
    sirius 3 4
    vega -3 4
    rigel 0 10
    altair 1 0
    polaris

    输出#1

    polaris altair sirius vega rigel

说明/提示

【样例解释】

星星 polaris 被选中。五颗星星与它的距离依次为:polaris 为 00,altair 为 11,sirius 和 vega 均为 55,rigel 为 1010。由于 sirius 的名字字典序小于 vega,因此 sirius 排在 vega 前面。

【数据范围】

对于所有测试数据保证:

  • 1≤n≤1051\le n\le 10^5

  • −109≤xi,yi≤109-10^9\le x_i,y_i\le 10^9

  • 每颗星星的名字长度均在 11 到 2020 之间,且只包含小写英文字母

  • 所有星星的名字互不相同

  • 所有星星的坐标互不相同

  • zz 一定是某颗星星的名字

输入解题思路,AI测评打分。不知道怎么写?

首页