atcoder#ABC239C. [ABC239C] Knight Fork

[ABC239C] Knight Fork

题目描述

xy xy 座標平面上の 2 2 つの格子点 (x1, y1), (x2, y2) (x_1,\ y_1),\ (x_2,\ y_2) からの距離がともに 5 \sqrt{5} である格子点は存在しますか?

输入格式

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

x1 x_1 y1 y_1 x2 x_2 y2 y_2

输出格式

条件を満たす格子点が存在する場合は Yes を、存在しない場合は No を出力せよ。

题目大意

在平面直角坐标系上有两个点,第 ii 个点的坐标为 (xi,yi)(x_i,y_i) 。现在依次输入 x1,y1,x2,y2x_1,y_1,x_2,y_2 ,问:是否存在一个点,使得这个点与前文所述的两个点的距离都是 5\sqrt5 ?

0 0 3 3
Yes
0 1 2 3
No
1000000000 1000000000 999999999 999999999
Yes

提示

注記

xy xy 座標平面上にある点のうち、x x 座標と y y 座標がともに整数である点を格子点と呼びます。
また、xy xy 平面上の 2 2 (a, b), (c, d) (a,\ b),\ (c,\ d) の距離をユークリッド距離 (a  c)2 + (bd)2 \sqrt{(a\ -\ c)^2\ +\ (b-d)^2} として定義します。

参考として、xy xy 平面の (0, 0) (0,\ 0) の上に黒丸を、(0, 0) (0,\ 0) からの距離が 5 \sqrt{5} となる格子点の上に白丸を書いた図は以下のようになります。(x,y x,y いずれかが整数となる部分に目盛り線を引いています。)

image

制約

  • 109  x1  109 -10^9\ \leq\ x_1\ \leq\ 10^9
  • 109  y1  109 -10^9\ \leq\ y_1\ \leq\ 10^9
  • 109  x2  109 -10^9\ \leq\ x_2\ \leq\ 10^9
  • 109  y2  109 -10^9\ \leq\ y_2\ \leq\ 10^9
  • (x1, y1)  (x2, y2) (x_1,\ y_1)\ \neq\ (x_2,\ y_2)
  • 入力はすべて整数である。

Sample Explanation 1

- 点 (2,1) (2,1) (x1, y1) (x_1,\ y_1) の距離は (02)2 + (01)2 = 5 \sqrt{(0-2)^2\ +\ (0-1)^2}\ =\ \sqrt{5} - 点 (2,1) (2,1) (x2, y2) (x_2,\ y_2) の距離は (32)2 + (31)2 = 5 \sqrt{(3-2)^2\ +\ (3-1)^2}\ =\ \sqrt{5} - 点 (2, 1) (2,\ 1) は格子点 なので点 (2, 1) (2,\ 1) は条件を満たします。よって Yes を出力します。 なお、点 (1, 2) (1,\ 2) も条件を満たすことが同様にして確認できます。

Sample Explanation 2

条件を満たす格子点は存在しません。よって No を出力します。

Sample Explanation 3

(109 + 1, 109  2) (10^9\ +\ 1,\ 10^9\ -\ 2) および点 (109  2, 109 + 1) (10^9\ -\ 2,\ 10^9\ +\ 1) が条件を満たします。