#1715. 探险家

探险家

题目描述:

一位探险家接到紧急任务,需穿越一片布满危险信号源的矩形区域,前往区域另一端的目标点获取关键物资。该矩形区域可视为一个二维平面,左下角入口坐标为 (1, 1),右上角目标点坐标为 (row, line),区域内分布着 n 个危险信号源,每个信号源的位置以平面坐标 (x, y) 标记。 为保障安全,探险家需规划一条从入口 (1,1) 到目标点 (row, line) 的路径,且路径需满足 “路径上所有点到最近危险信号源的距离尽可能大”—— 核心目标是找到这样一条最优路径,使得路径中 “到最近信号源的最短距离” 达到最大值(即最大化最小安全距离)。探险家可沿任意方向移动,不限于上下左右,距离计算遵循平面两点间直线距离公式。

输入格式:

从文件 explorer.in 中读取数据,格式如下: 第 1 行:3 个整数 n、row、line,分别代表危险信号源的数量、矩形区域的行数(纵向最大坐标)、列数(横向最大坐标)。 第 2 行至第 n+1 行:每行包含 2 个整数 x、y,表示 1 个危险信号源的平面坐标(x 对应纵向位置,y 对应横向位置)。

输出格式:

输出到文件 explorer. out 中。 输出一行,1 个保留两位小数的浮点数,代表最优路径中 “到最近危险信号源的最短距离” 的最大值(即最大安全距离)。

样例:

1 3 3
2 2

1.00
1 3 3 
3 1


2.00

提示

【样例 1 解释】 矩形区域为 3×3,仅 1 个危险信号源位于中心 (2,2)。最优路径可沿区域边缘(如从 (1,1) 沿 x=1 到 (1,3),再沿 y=3 到 (3,3)),路径上所有点到 (2,2) 的最短距离为 1.00(如 (1,1) 到 (2,2) 的距离为 √2≈1.414,但路径中靠近信号源的点距离为 1.00),故最大安全距离为 1.00。

【样例 2 解释】 危险信号源位于 (3,1)(与入口 (1,1) 同列,纵向相差 2)。最优路径可从 (1,1) 沿横向移动至 (1,3),再纵向移动至 (3,3):路径中 (1,3) 到 (3,1) 的距离为 √[(3-1)²+(1-3)²]=√8≈2.828,而整个路径中到信号源的最短距离为 2.00(如 (1,1) 到 (3,1) 的距离为 2.00),故最大安全距离为 2.00。

数据范围

保证对于所有数据满足: 2 ≤ n ≤ 3000 ,2 ≤ row ≤ 30000,2 ≤ line ≤ 30000。