atcoder#ABC259D. [ABC259D] Circumferences

[ABC259D] Circumferences

题目描述

xy xy -平面上の N N 個の円が与えられます。 i = 1, 2, , N i\ =\ 1,\ 2,\ \ldots,\ N について、i i 番目の円は点 (xi, yi) (x_i,\ y_i) を中心とする半径 ri r_i の円です。

N N 個の円のうち少なくとも 1 1 つ以上の円の円周上にある点のみを通って、点 (sx, sy) (s_x,\ s_y) から点 (tx, ty) (t_x,\ t_y) に行くことができるかどうかを判定してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N sx s_x sy s_y tx t_x ty t_y x1 x_1 y1 y_1 r1 r_1 x2 x_2 y2 y_2 r2 r_2 \vdots xN x_N yN y_N rN r_N

输出格式

(sx, sy) (s_x,\ s_y) から点 (tx, ty) (t_x,\ t_y) に行くことができる場合は Yes を、そうでない場合は No を出力せよ。 ジャッジは英小文字と英大文字を厳密に区別することに注意せよ。

题目大意

已给出 nn 个在平面直角坐标系上的圆。对于每个 i{1,2,3,...,n}i \in \{1, 2, 3, ..., n\},有第 ii 个圆的圆心是 (xi,yi)(x_i, y_i),半径是 rir_i。你需要回答你是否能从 (sx,sy)(s_x, s_y) 在圆上连续地走到 (tx,ty)(t_x, t_y)

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

提示

制約

  • 1  N  3000 1\ \leq\ N\ \leq\ 3000
  • 109  xi, yi  109 -10^9\ \leq\ x_i,\ y_i\ \leq\ 10^9
  • 1  ri  109 1\ \leq\ r_i\ \leq\ 10^9
  • (sx, sy) (s_x,\ s_y) N N 個の円のうち少なくとも 1 1 つ以上の円の円周上にある
  • (tx, ty) (t_x,\ t_y) N N 個の円のうち少なくとも 1 1 つ以上の円の円周上にある
  • 入力はすべて整数

Sample Explanation 1

![](https://img.atcoder.jp/abc259/7b850385b9d67dc150435ffc7818bd94.png) 例えば、下記の経路で点 (0, 2) (0,\ -2) から点 (3, 3) (3,\ 3) へ行くことができます。 - 点 (0, 2) (0,\ -2) から 1 1 つ目の円の円周上を反時計回りに通って点 (1, 3) (1,\ -\sqrt{3}) へ行く。 - 点 (1, 3) (1,\ -\sqrt{3}) から 2 2 つ目の円の円周上を時計回りに通って点 (2, 2) (2,\ 2) へ行く。 - 点 (2, 2) (2,\ 2) から 3 3 つ目の円の円周上を反時計回りに通って点 (3, 3) (3,\ 3) へ行く。 よって、Yes を出力します。

Sample Explanation 2

![](https://img.atcoder.jp/abc259/924efa40ff28e5d7125841da2710d012.png) 少なくとも 1 1 つ以上の円の円周上にある点のみを通って点 (0, 1) (0,\ 1) から点 (0, 3) (0,\ 3) に行くことはできないので No を出力します。