题目描述 Description
农民John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言,你能看到至少有两个牧区通过任何路径都不连通。这样,农民John就有多个牧场了。
John想在农场里添加一条路径(注意,恰好一条)。对这条路径有以下限制:
一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到的所有距离指的都是最短的距离)。考虑如下的有5个牧区的牧场,牧区用“*”表示,路径用直线表示。每一个牧区都有自己的坐标:
15,15 20,15
D E
*-------*
| _/|
| _/ |
| _/ |
|/ |
*--------*-------*
A B C
10,10 15,10 20,10
这个牧场的直径大约是12.07106, 最远的两个牧区是A和E,它们之间的最短路径是A-B-E。
这里是另一个牧场:
*F 30,15
/
_/
_/
/
*------*
G H
25,10 30,10
这两个牧场都在John的农场上。John将会在两个牧场中各选一个牧区,然后用一条路径连起来,使得连通后这个新的更大的牧场有最小的直径。
注意,如果两条路径中途相交,我们不认为它们是连通的。只有两条路径在同一个牧区相交,我们才认为它们是连通的。
输入文件包括牧区、它们各自的坐标,还有一个如下的对称邻接矩阵:
A B C D E F G H
A 0 1 0 0 0 0 0 0
B 1 0 1 1 1 0 0 0
C 0 1 0 0 1 0 0 0
D 0 1 0 0 1 0 0 0
E 0 1 1 1 0 0 0 0
F 0 0 0 0 0 0 1 0
G 0 0 0 0 0 1 0 1
H 0 0 0 0 0 0 1 0
输入文件至少包括两个不连通的牧区。
请编程找出一条连接两个不同牧场的路径,使得连上这条路径后,这个更大的新牧场有最小的直径。
输入描述 Input Description
第1行: 一个整数N (1 <= N <= 150), 表示牧区数
第2到N+1行: 每行两个整数X,Y (0 <= X ,Y<= 100000), 表示N个牧区的坐标。注意每个 牧区的坐标都是不一样的。
第N+2行到第2*N+1行: 每行包括N个数字(0或1) 表示如上文描述的对称邻接矩阵。
输出描述 Output Description
只有一行,包括一个实数,表示所求直径。数字保留六位小数。
样例输入 Sample Input
8
10 10
15 10
20 10
15 15
20 15
30 15
25 10
30 10
01000000
10111000
01001000
01001000
01110000
00000010
00000101
00000010
scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 sscanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格canf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格 scanf会读空格
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<queue>
5 #include<cmath>
6 using namespace std;
7 double maxn=1e12;
8 double x[1001];
9 double y[1001];
10 double cd(int i,int j)
11 {
12 return sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
13 }
14 double map[1001][1001];
15 double m[10001];//点i可以到达的最大距离
16 int main()
17 {
18 int n;
19 scanf("%d",&n);
20 for(int i=1;i<=n;i++)
21 {
22 scanf("%lf%lf",&x[i],&y[i]);
23 }
24 for(int i=1;i<=n;i++)
25 {
26 for(int j=1;j<=n;j++)
27 {
28 char kk;
29 //scanf("%c",&kk);
30 cin>>kk;
31 if(kk=='1')
32 {
33 double tmp=cd(i,j);
34 map[i][j]=tmp;
35 }
36 else
37 {
38 map[i][j]=maxn;
39 }
40 }
41 }
42 for(int k=1;k<=n;k++)
43 {
44 for(int i=1;i<=n;i++)
45 {
46 for(int j=1;j<=n;j++)
47 {
48 if(i!=j&&i!=k&&j!=k)
49 {
50 if(map[i][k]<maxn-1&&map[k][j]<maxn-1)
51 {
52 if(map[i][j]>map[i][k]+map[k][j])
53 {
54 map[i][j]=map[i][k]+map[k][j];
55 }
56 }
57
58 }
59
60 }
61 }
62 }
63 memset(m,0,sizeof(m));
64 for(int i=1;i<=n;i++)
65 {
66 for(int j=1;j<=n;j++)
67 {
68 if(map[i][j]<maxn-1)
69 {
70 if(m[i]<map[i][j])
71 {
72 m[i]=map[i][j];
73 }
74 }
75
76 }
77 }
78 double r2=maxn;
79 for(int i=1;i<=n;i++)
80 {
81 for(int j=1;j<=n;j++)
82 {
83 if(map[i][j]>maxn-1&&i!=j)
84 {
85 double tmp=cd(i,j);
86 double nn=m[i]+m[j]+tmp;
87 if(r2>nn)
88 r2=nn;
89 }
90 }
91 }
92 double r1=-1;
93 for(int i=1;i<=n;i++)
94 {
95
96 if(m[i]>r1)
97 r1=m[i];
98 }
99 printf("%.6lf",max(r1,r2));
100 return 0;
101 }