CF887E Little Brother

题目描述

Masha 的弟弟在纸上画了两个点。之后,他又画了一些圆,并把纸交给了姐姐。 Masha 刚刚上完几何课,所以她立刻注意到了弟弟的画中一些有趣的事实。 首先,通过弟弟画的两个点的直线不会与任何一个圆相交或相切。 并且,任意两圆不会相交或相切,也不存在一对圆的位置关系是一个圆在另一个圆内部。 此外,对于每一个圆,Masha 都画了一个面积最小且边平行于坐标轴的正方形,使该圆被包含在正方形之内,并注意到没有任意两正方形相交或相切,也不存在一对正方形的位置关系是一个正方形在另一个正方形内部。 现在 Masha 想画一个半径尽可能小的圆,使其经过弟弟画的那两个点,并且不与任何已有的圆相交,但这些圆可以与 Masha 画的圆相切或者被包含在 Masha 画的圆的内部。 保证答案不会超过 $10^{12}$。此性质对于 hack 也成立。

输入格式

第一行包含四个整数 $x_1$、$y_1$、$x_2$、$y_2$($-10^{5} \le x_1, y_1, x_2, y_2 \le 10^{5}$),分别表示弟弟画的两个点的坐标,第一个点为 $(x_1, y_1)$,第二个点为 $(x_2, y_2)$。这两个点不同。 第二行包含一个整数 $n$($1 \le n \le 10^5$),表示弟弟画的圆的数量。 接下来的 $n$ 行,每行包含三个整数 $x_i$、$y_i$、$r_i$($-10^{5} \le x_i, y_i \le 10^{5}$,$1 \le r_i \le 10^5$),表示圆心为 $(x_i, y_i)$,半径为 $r_i$ 的圆。

输出格式

输出一个最小的实数,表示可以画出的满足要求的圆的半径,其必须经过给定的两个点并且不与任何已有的圆相交。 如果输出的结果的绝对误差或相对误差不超过 $10^{-4}$,则视为正确。

说明/提示

![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF887E/c56ab2a2cf4434792fa48955a8bcd4695bbfb437.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF887E/a5776f5def7ef4a4aa8e3a9f35c33da2f858ab42.png) 由 ChatGPT 5 翻译