| “华为杯”2025 年广东工业大学 ACM 程序设计竞赛 |
|---|
| Finished |
猴村遭受了气球的入侵,众猴不知所措之时,回旋镖猴淡笑一声表示:"很简单,我成尊不就是了?",说完,不再掩饰气息,显露出 $$$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$$$ 时间休息,然后才能进行下一次攻击。
当气球走出路径后,回旋镖猴便失败。请问回旋镖猴能否守住猴村呢?
第一行输入五个正整数 $$$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 将被识别为肯定的回答)。
5 2 2 2 40 04 04 40 40 060 1 2 3 4 5
Yes 20.0000000000
5 20 6 5 1212 012 120 120 012 050 12 24 36 48
Yes 48.0000000000
5 3 1 1 10 01 01 10 10 050 1 2 3 4
Yes 6.0000000000
第一组测试样例中,当 $$$t = 4$$$ 时,气球与回旋镖猴的位置可参考下图:
注意当 $$$t=0$$$ 时,第一个气球出来瞬间被回旋镖猴击破了。
| Name |
|---|


