配点 : 400 点
問題文
xy -平面上の N 個の円が与えられます。
i=1,2,…,N について、i 番目の円は点 (xi,yi) を中心とする半径 ri の円です。
N 個の円のうち少なくとも 1 つ以上の円の円周上にある点のみを通って、点 (sx,sy) から点 (tx,ty) に行くことができるかどうかを判定してください。
制約
- 1≤N≤3000
- −109≤xi,yi≤109
- 1≤ri≤109
- (sx,sy) は N 個の円のうち少なくとも 1 つ以上の円の円周上にある
- (tx,ty) は N 個の円のうち少なくとも 1 つ以上の円の円周上にある
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N
sx sy tx ty
x1 y1 r1
x2 y2 r2
⋮
xN yN rN
出力
点 (sx,sy) から点 (tx,ty) に行くことができる場合は 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 つ目の円の円周上を反時計回りに通って点 (1,−3) へ行く。
- 点 (1,−3) から 2 つ目の円の円周上を時計回りに通って点 (2,2) へ行く。
- 点 (2,2) から 3 つ目の円の円周上を反時計回りに通って点 (3,3) へ行く。
よって、Yes
を出力します。
3
0 1 0 3
0 0 1
0 0 2
0 0 3
No
少なくとも 1 つ以上の円の円周上にある点のみを通って点 (0,1) から点 (0,3) に行くことはできないので No
を出力します。