BloomsTD6
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

猴村遭受了气球的入侵,众猴不知所措之时,回旋镖猴淡笑一声表示:“很简单,我成尊不就是了?”,说完,不再掩饰气息,显露出 555 修为。



猴村发现有 m 个气球正在靠近,它们分别在 a_1, a_2, \dots, a_m 时刻生成在 (x_1,y_1),并以 1 单位/秒的速度沿着一条路径 \{(x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)\} 移动。


此时,回旋镖猴站在 (ta_x, ta_y),索敌半径为 2r;每次攻击时,回旋镖猴会选择当前攻击范围内还未被击破的生成时间最早的气球,然后向该气球抛出一个回旋镖,并瞬间击破所有与其运动轨迹距离不超过 10^{-8} 的气球。回旋镖的轨迹是以他为起点的一个逆时针方向的半径为 r 的圆,且目标气球位于轨迹的前半段。


回旋镖猴会在气球进入攻击范围内时进行攻击,但回旋镖猴每次攻击后需要 gap 时间休息,然后才能进行下一次攻击。


当气球走出路径后(即便气球在 (x_n,y_n) 依然视作在路径上),回旋镖猴便失败。请问回旋镖猴能否守住猴村呢?

输入描述:

第一行输入五个正整数 n, ta_x, ta_y, r, gap (2 \leq n \leq 10^5, -10^3 \leq ta_x,ta_y \leq 10^3, 1 \leq r,gap \leq 10^3),分别表示路径点数量,气球数量,回旋镖猴的初始坐标、索敌半径和攻击间隔;


接下来 n 行,每行输入两个整数 x_i,y_i (-10^3 \leq x_i,y_i \leq 10^3),表示第 i 个路径点的坐标;


n+2 行,输入一个正整数 m (1 \leq m \leq 10^3),表示气球数量;


n+3 行,输入 m 个整数 a_1,a_2,\dots,a_m (0 \leq a_1 \leq a_2 \leq ... \leq a_m \leq 5 \times 10^4),表示气球出现的时间。


保证回旋镖猴不会出现在路径上。

输出描述:

若守得住,你应当输出Yes后输出结束时间(即最后一个气球被击破的时间);


若守不住,你应当输出No后输出第一个冲破防守的气球的编号。


本题采用 Special Judge,你的输出答案和标准答案相对误差小于 10^{-6} 即视作正确。

你可以以任意大小写输出Yes和No(例如,字符串yEs、yes、Yes和YES将被识别为肯定的回答)。

示例1

输入

复制
5 2 2 2 4
0 0
4 0
4 4
0 4
0 0
6
0 1 2 3 4 5

输出

复制
Yes
20.0000000000
示例2

输入

复制
5 20 6 5 12
12 0
12 12
0 12
0 0
12 0
5
0 12 24 36 48

输出

复制
Yes
48.0000000000
示例3

输入

复制
5 3 1 1 1
0 0
1 0
1 1
0 1
0 0
5
0 1 2 3 4

输出

复制
Yes
6.0000000000

备注:

第一组测试样例中,当 t = 4 时,气球与回旋镖猴的位置可参考下图:



注意当 t=0 时,第一个气球出来瞬间被回旋镖猴击破了。