首页 > 技术文章 > 10.5 广州集训 Day4

drizzly 2017-10-28 10:26 原文

//为了方便复习先贴上来... 但是NOIP 考前大概没时间订正惹 所以都是留坑T T

【问题背景】
zhx喜欢玩微信摇一摇,著名科学家hys做了一个摇一摇的程序。

【问题描述】
微信摇一摇的原理是,在同一时刻(1s 内)使用摇一摇功能的所用用户,会进入一个名单,系统给每个人返回名单里地理意义上,离你最近的一个(或并列的多个)人。我们假设在某一时刻有 N 个人同时摇动他们的手机,每个人的名字为 Name[i](长度不超过 10,由小写字母组成且无重名)。由于定位服务的精度问 题,第 i 个人的地理坐标只能用两个整数 x[i]和 y[i]粗略的表示(不会有两人在同一个位置),而地理意义的最近表示的是两点之间的直线距离(欧几里得距离) 最短。系统能依次返回每个人配对的对象以及他们之间的距离。 hys 是个忙碌的科学家,你能帮他实现这个小功能吗?

【输入格式】
输入文件第一行为一个整数 N,此后 N 行,每行先是两个整数 x[i]、y[i],然后是一个字符串 Name[i],互相之间用空格隔开。

【输出格式】
共 N 行,每行先输出最近距离,保留两位小数(四舍五入),此后输出离第 i 个人最近的人的名字,若有多个,按字典序从小到大依次输出,中间用空格隔开。

【样例输入】
3
3 0 alice
0 7 bob
-3 0 kitty

【样例输出】
6.00 kitty
7.62 alice kitty
6.00 alice

【数据规模与约定】
对于40%的数据,满足2≤

推荐阅读