#1354. 消暑

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: jiaangk

题目描述

西安天气太热啦!

给定一个直角坐标系,你当前处于(xs,ys)(x_s, y_s)位置,要搬运物品前往(xt,yt)(x_t, y_t)位置。地图上有NN棵树,每一棵树可以在以(xi,yi)(x_i, y_i)为中心,rir_i为半径的区域内遮挡阳光,而剩余位置都会受到太阳暴晒。问搬运物品过程中受到太阳暴晒的最短路径是多少。

输入格式

第一行给定四个实数,分别代表xs,ys,xt,ytx_s, y_s, x_t, y_t

第二行一个整数NN,表示树的个数。

接下来NN行,每行三个实数xi,yi,rix_i, y_i, r_i,分别代表树的坐标和半径。

输出格式

一个实数ansans,代表受到太阳暴晒的最短路径(相对误差/绝对误差不超过10910^{-9})。

样例

样例输入1

1 1 4 5
1
9 1 9

样例输出1

0.000000000000

样例输入2

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

样例输出2

6.656854249492

数据范围与提示

1N1,0001 \leq N \leq 1,000

109x,y,r109-10^9 \leq x, y, r \leq 10^9