AT_arc004_1.[ARC004A] 2点間距離の最大値 ( The longest distance )

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

平面上有 NN 个点,每个点编号从 00 到 N−1N-1,每个点给定其 xx 坐标和 yy 坐标。
请从这 NN 个点中任选两个点,连接成线段,求所有可能线段中最长的那一条的长度。输入按如下格式从标准输入读入。

NN x0x_{0} y0y_{0} x1x_{1} y1y_{1} : : xN−1x_{N-1} yN−1y_{N-1}

  • 输入共 N+1N+1 行。
  • 第 11 行是一个整数 N (2≤N≤100)N\ (2\leq N\leq 100),表示点的个数。
  • 第 22 行到第 N+1N+1 行的第 i+1i+1 行,给出第 ii 个点的 xx 坐标 xi(0≤xi≤100)x_{i}(0\leq x_{i}\leq 100) 和 yy 坐标 yi(0≤yi≤100)y_{i}(0\leq y_{i}\leq 100),以空格分隔。
  • 不存在两个点的 xx 坐标和 yy 坐标都相同的情况,但可能存在某条线段上有其它点。

请输出所有可能线段中最长的那一条的长度,结果保留足够精度,保证绝对误差或相对误差至少有一项不超过 10−310^{-3}。
最后请输出换行符。

例如:

3
1 1
2 4
4 3

输出:

3.605551
  • 33 个点的位置关系如下图所示。

  • (1,1)(1,1) 和 (2,4)(2,4) 之间的线段长度为 (2−1)2+(4−1)2=10=3.162278\sqrt{(2-1)^2+(4-1)^2} = \sqrt{10} = 3.162278。
  • (2,4)(2,4) 和 (4,3)(4,3) 之间的线段长度为 (4−2)2+(3−4)2=5=2.236068\sqrt{(4-2)^2+(3-4)^2} = \sqrt{5} = 2.236068。
  • (4,3)(4,3) 和 (1,1)(1,1) 之间的线段长度为 (1−4)2+(1−3)2=13=3.605551\sqrt{(1-4)^2+(1-3)^2} = \sqrt{13} = 3.605551。
  • 因此最长的线段长度为 3.6055513.605551。
10
1 8
4 0
3 7
2 4
5 9
9 1
6 2
0 2
8 6
7 8

输出:

10.630146
  • 1010 个点的位置关系如下图所示。
  • 最长的线段是点 00 和点 55 之间,长度为 10.63014610.630146。

4
0 0
0 100
100 0
100 100

输出:

141.421356
  • 最长的线段是点 00 和点 33 之间,或点 11 和点 22 之间,长度为 141.421356141.421356。
5
3 0
1 0
0 0
4 0
2 0

输出:

4.000000
  • 最长的线段是点 22 和点 33 之间,长度为 4.0000004.000000。
4
2 2
0 0
1 1
3 3

输出:

4.242641
  • 最长的线段是点 11 和点 33 之间,长度为 4.2426414.242641。

输入格式

第 11 行包含一个整数 NN,表示点的个数。
接下来 NN 行,每行包含两个整数 xix_{i} 和 yiy_{i},表示第 ii 个点的坐标。

输出格式

输出一行,表示所有可能线段中最长的那一条的长度。
输出结果需保证绝对误差或相对误差至少有一项不超过 10−310^{-3}。
最后输出换行符。

说明/提示

  • 2≤N≤1002 \leq N \leq 100
  • 0≤xi,yi≤1000 \leq x_{i}, y_{i} \leq 100
  • 不存在完全重合的点。
  • 输出时请保证精度,建议输出至少 66 位小数。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页