题目背景
在《红色警戒》中,宝石矿是至关重要的资源。为了高效采集宝石,你需要指挥采矿车前往宝石矿区域。现在,让我们来计算采矿车到宝石矿的最短距离吧!
题目描述
红警的地图可以抽象为一个平面直角坐标系。地图上只有一片宝石矿,区域为一个四条边均与坐标轴平行的矩形。你有 n 个采矿车,分别在 (xi,yi) 点。你需要求出:
- 所有采矿车到宝石矿的距离(保留小数点后 9 位)。
- 距离最近的采矿车编号。如果有多个距离宝石矿最近的采矿车,则输出编号最小的那个。
采矿车到宝石矿的距离定义:采矿车所在的点与宝石矿矩形上所有点(包括四条边上的点和四个顶点)的欧几里得距离的最小值。
其中,点 (x1,y1) 到点 (x2,y2) 的欧几里得距离为:
(x1−x2)2+(y1−y2)2
输入格式
第一行包含一个整数 n,表示采矿车的个数。
第二行包含四个整数 X1,Y1,X2,Y2,其中 (X1,Y1) 表示宝石矿左下角的坐标,(X2,Y2) 表示宝石矿右上角的坐标。
接下来 n 行,第 i 行包含两个整数 xi,yi,表示编号为 i 的采矿车的坐标为 (xi,yi)。保证不会有采矿车在宝石矿的内部或边界上。
输出格式
输出一共两行。
第一行 n 个整数,第 i 个数表示编号为 i 的采矿车到矿区的最短距离(保留小数点后 9 位)。
第二行一个整数,表示距离最近的采矿车编号。
样例 #1
样例输入 #1
4
-2 -4 1 -2
9 -7
6 2
-5 10
-9 -7
样例输出 #1
8.544003745 6.403124237 12.369316877 7.615773106
2
数据范围与提示
对于 100% 的数据,保证:
- 1≤n≤105
- −100≤X1,X2,Y1,Y2,xi,yi≤100
- X1≤X2, Y1≤Y2
特殊性质:
- A: X1=X2, Y1=Y2(宝石矿退化为一个点)
- B: X1+1=X2, Y1+1=Y2(宝石矿为 1×1 的正方形)
| 测试点编号 |
数据范围 |
特殊性质 |
| 1∼2 |
n≤100 |
A |
| 3∼4 |
无限制 |
| 5∼6 |
n≤100 |
B |
| 7∼8 |
无限制 |
| 9 |
n≤100 |
无 |
| 10 |
无限制 |