灯下定影
题号:NC277089
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,\,为了省电,W星的灯都是感应灯,有人进入到感应区域后立即亮起(包含边界),在人离开区域后延迟一定时间熄灭。当然,如果在此期间有其他人进入感应区域,则重新开始计时。
\,\,\,\,\,\,\,\,\,\,已知感应区域是以灯所在位置为中心的一个圆,有一些人同时从初始位置出发、沿给定的向量方向、以给定的速度运动。
\,\,\,\,\,\,\,\,\,\,你能求解出路灯亮起的总时间吗。

输入描述:

\,\,\,\,\,\,\,\,\,\,第一行输入三个整数 x_0,y_0r\ (-1000 \leq x_0,y_0 \le 1000;\ 1\le r \le 100) 代表灯所在的位置和灯的感应区域半径。
\,\,\,\,\,\,\,\,\,\,第二行输入两个整数 nx\ (1\le n \le 10^5;\ 0\le x \le 1000) 代表行人人数和延迟熄灭时间。
\,\,\,\,\,\,\,\,\,\,此后 n 行,每行输入五个小数点后位数不超过 9 位的实数 u_s,v_s,u_e,v_es\ (-1000 \le u_s,v_s,u_e,v_e\le 1000;\ 1\le s \le 1000) 代表行人初始位置、前进路线上的另一个点(注意不是终点)与移动速度,保证 (u_s,v_s)\neq(u_e,v_e)(u_s,v_s) 不位于灯的感应区域内。

输出描述:

\,\,\,\,\,\,\,\,\,\,在一行上输出一个实数,代表路灯亮起的总时间。如果相对误差或绝对误差不超过 10^{-6} ,您的答案将被接受。具体来说,设您的答案为 a ,裁判的答案为 b ,当且仅当 \frac{|a-b|}{\max(1,|b|)}\le 10^{-6} 时,您的答案将被接受。
示例1

输入

复制
4 2 6
3 2
14 -6 8 -4 1
10 4 0 -4 1
8.00 -4.000 0.00 -4.000 1

输出

复制
17.719185869293

说明

\,\,\,\,\,\,\,\,\,\,该样例的示意图见下方所示。
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,● 对于第一个行人,其到达和离开感应区域的时间分别为 t_{{\rm in}_1}=7.96696376t_{{\rm out}_1}=16.06634645
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,● 对于第二个行人,其到达和离开感应区域的时间分别为 t_{{\rm in}_2}=0.34716059t_{{\rm out}_2}=11.52204531 ;
\,\,\,\,\,\,\,\,\,\,所以,从 t_{{\rm in}_2}t_{{\rm out}_1} 这段时间路灯一直都是亮着的,t_{{\rm out}_1} 时刻之后,路灯延迟 2 秒关闭。
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,● 对于第三个行人,其到达和离开感应区域的时间均为 t_{{\rm in}3}=t_{{\rm out}_3}=2
\,\,\,\,\,\,\,\,\,\,最终亮起总时间 t_{{\rm out}1}-t_{{\rm in}_2}+2=17.719186 。
\,\,\,\,\,\,\,\,\,\,
示例2

输入

复制
-6 -9 9
5 0
-10 1 -3 -7 1
4 -7 -2 0 1
-7 1 -2 5 1
3 -6 -2 9 1
-9 4 -2 -1 1.000000001

输出

复制
16.519229877697