atcoder#ABC304C. [ABC304C] Virus

[ABC304C] Virus

题目描述

1, 2, , N 1,\ 2,\ \ldots,\ N の番号がついた N N 人の人が二次元平面上におり、人 i i は座標 (Xi,Yi) (X_i,Y_i) で表される地点にいます。

1 1 がウイルスに感染しました。ウイルスに感染した人から距離が D D 以内にいる人にウイルスはうつります。

ただし、距離はユークリッド距離、すなわち 2 2 (a1, a2) (a_1,\ a_2) (b1, b2) (b_1,\ b_2) に対し、この 2 2 点間の距離が  (a1b1)2 + (a2b2)2 \sqrt\ {(a_1-b_1)^2\ +\ (a_2-b_2)^2} であるものとして定められています。

十分に時間が経過した、すなわち人 i i がウイルスに感染しているならば 人 i i との距離が D D 以内にいるすべての人がウイルスに感染している状態になったときに、各 i i について人 i i がウイルスに感染しているか判定してください。

输入格式

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

N N D D X1 X_1 Y1 Y_1 X2 X_2 Y2 Y_2 \vdots XN X_N YN Y_N

输出格式

N N 行出力せよ。i i 行目には、人 i i がウイルスに感染しているならば Yes を、そうでないならば No を出力せよ。

题目大意

题目描述

编号为 1N1\sim N 的人站在二维平面上,编号为 ii 的人在坐标 (Xi,Yi)(X_i,Y_i) 上。

现在编号为 11 的人患上了一种病毒,并可以传染到与感染者距离 DD 以内的其它人身上。定义两个点的距离为其直线距离,即两个点 (a1,b1)(a_1,b_1)(a2,b2)(a_2,b_2) 的距离为 (a1a2)2+(b1b2)2\sqrt{(a_1-a_2)^2+(b_1-b_2)^2}。请你判断,在足够的时间之后,每个人是否会被感染。

输入格式

第一行两个整数 N,DN,D,含义如图所示。

接下来 NN 行,第 (i+1)(i+1) 行两个整数 XiX_iYiY_i。表示编号为 ii 的人的坐标。

输出格式

NN 行,第 ii 行一个字符串,如果第 ii 个人会被感染,输出 Yes,否则,输出 No

说明/提示

  • 1N,D20001\le N,D\le2000
  • 1000Xi,Yy1000-1000\le X_i,Y_y\le 1000
  • 坐标互不相同。
  • 输入的所有数据均为整数。
4 5
2 -1
3 1
8 8
0 5
Yes
Yes
No
Yes
3 1
0 0
-1000 -1000
1000 1000
Yes
No
No
9 4
3 2
6 -1
1 6
6 5
-2 -3
5 3
2 -3
2 1
2 6
Yes
No
No
Yes
Yes
Yes
Yes
Yes
No

提示

制約

  • 1  N, D  2000 1\ \leq\ N,\ D\ \leq\ 2000
  • 1000  Xi, Yi  1000 -1000\ \leq\ X_i,\ Y_i\ \leq\ 1000
  • i  j i\ \neq\ j のとき (Xi, Yi)  (Xj, Yj) (X_i,\ Y_i)\ \neq\ (X_j,\ Y_j)
  • 入力はすべて整数

Sample Explanation 1

1 1 と人 2 2 の距離は  5 \sqrt\ 5 であるため、人 2 2 はウイルスに感染します。 また、人 2 2 と人 4 4 の距離は 5 5 であるため、人 4 4 はウイルスに感染します。 人 3 3 は距離 5 5 以内に人がいないので、ウイルスに感染することはありません。