#AT2232. D - Circumferences

D - Circumferences

当前没有测试数据。

D - 圆

分数: $400$ 分

问题描述

给定 $N$ 个圆在 $xy$-坐标平面上。 对于每一个 $i = 1, 2, \ldots, N$,第 $i$ 个圆的圆心为 $(x_i, y_i)$,半径为 $r_i$。

判断是否可以通过只经过至少一个圆的圆周上的点从 $(s_x, s_y)$ 到达 $(t_x, t_y)$。

约束

  • $1 \leq N \leq 3000$
  • $-10^9 \leq x_i, y_i \leq 10^9$
  • $1 \leq r_i \leq 10^9$
  • $(s_x, s_y)$ 在 $N$ 个圆的圆周上。
  • $(t_x, t_y)$ 在 $N$ 个圆的圆周上。
  • 所有输入中的值均为整数。

输入

输入以以下格式从标准输入给出:

NN

sxs_x sys_y txt_x tyt_y

x1x_1 y1y_1 r1r_1

x2x_2 y2y_2 r2r_2

\vdots

xNx_N yNy_N rNr_N

输出

如果可以从 $(s_x, s_y)$ 到达 $(t_x, t_y)$,输出 Yes;否则,输出 No。 注意评测程序区分大小写。


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

以下是一种从 $(0, -2)$ 到 $(3, 3)$ 的路径。

  • 从 $(0, -2)$,逆时针经过第一个圆的圆周到达 $(1, -\sqrt{3})$。
  • 从 $(1, -\sqrt{3})$,顺时针经过第二个圆的圆周到达 $(2, 2)$。
  • 从 $(2, 2)$,逆时针经过第三个圆的圆周到达 $(3, 3)$。

因此,应该输出 Yes


3
0 1 0 3
0 0 1
0 0 2
0 0 3
No

无法通过只经过所有圆的圆周上的点从 $(0, 1)$ 到达 $(0, 3)$,因此应该输出 No