普及⏱ 1000ms💾 256MB#P5167🏷️ Floyd图论最短路

题目描述

某物流园内有 $n$ 个仓库,编号 $1 \sim n$,仓库 $i$ 位于平面坐标 $(x_i, y_i)$。 部分仓库之间已有双向传送带直接相连,仓库间沿传送带可互达的一个最大子集称为一个“区”。 现有至少两个互不连通的区。园区想新建恰好一条传送带,连接两个不同区中的各一个仓库, 使合并后的新区的直径(区内任意两仓库间最短运送距离的最大值)尽可能小。求新区的最小直径。 两仓库间运送距离按直线距离计算,传送带可转弯仅能在仓库处发生。

输入格式

第一行一个整数 $n$。 接下来 $n$ 行每行两个整数 $x, y$,表示仓库坐标。 最后 $n$ 行每行 $n$ 个数字($0$ 或 $1$,以空格分隔):邻接矩阵,$1$ 表示两仓库间有传送带直接相连。

输出格式

一行一个实数:新区的最小直径,保留六位小数。

数据范围

None

样例输入 #1
4
0 0
10 0
0 20
0 30
1 1 0 0
1 1 0 0
0 0 1 1
0 0 1 1
样例输出 #1
40.000000
样例输入 #2
2
0 0
5 5
0 0
0 0
样例输出 #2
7.071068