atcoder#ABC239C. [ABC239C] Knight Fork

[ABC239C] Knight Fork

配点 : 300300

問題文

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

注記

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

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

image

制約

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

入力

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

x1x_1 y1y_1 x2x_2 y2y_2

出力

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

0 0 3 3
Yes
  • (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) も条件を満たすことが同様にして確認できます。

0 1 2 3
No

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

1000000000 1000000000 999999999 999999999
Yes

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