#arc064c. [arc064_c]Cosmic Rays

[arc064_c]Cosmic Rays

问题描述

xx-yy 平面上,高濑要从点 (xs,ys)(x_s, y_s) 前往点 (xt,yt)(x_t, y_t)。他可以以速度 11 在任意方向上移动。在这里,我们将他视为一个没有大小的点。

平面上部署了 NN 个圆形屏障。第 ii 个屏障的中心和半径分别为 (xi,yi)(x_i, y_i)rir_i。这些屏障可能重叠或包含彼此。

如果平面上的一个点不在任何屏障内,那么它就会受到宇宙射线的照射。

高濑希望在旅行过程中尽量避免宇宙射线的照射。找出他在旅行过程中可能暴露在宇宙射线下的最短时间。

约束条件

  • 所有输入值都是整数。
  • 109xs,ys,xt,yt109-10^9 ≤ x_s, y_s, x_t, y_t ≤ 10^9
  • (xs,ys)(x_s, y_s)(xt,yt)(x_t, y_t)
  • 1N1,0001≤N≤1,000
  • 109xi,yi109-10^9 ≤ x_i, y_i ≤ 10^9
  • 1ri1091 ≤ r_i ≤ 10^9

输入

输入以以下格式从标准输入给出:

xsx_s ysy_s xtx_t yty_t

NN

x1x_1 y1y_1 r1r_1

x2x_2 y2y_2 r2r_2

::

xNx_N yNy_N rNr_N

输出

打印出高濑在旅行过程中可能暴露在宇宙射线下的最短时间。如果绝对或相对误差至多为 10910^{-9},则输出是正确的。

示例输入 1

-2 -2 2 2
1
0 0 1

示例输出 1

3.6568542495

一条最优路径如下:

e9c630751968b7051df5750b7ddc0e07.png

示例输入 2

-2 0 2 0
2
-1 0 2
1 0 2

示例输出 2

0.0000000000

一条最优路径如下:

fb82f6f4df5b22cffb868ce6333277aa.png

示例输入 3

4 -2 -2 4
3
0 0 2
4 0 1
0 4 1

示例输出 3

4.0000000000

一条最优路径如下:

d09006720c225cbe69eae3fd9c186e67.png