配点 : 300 点
問題文
xy 座標平面上の 2 つの格子点 (x1,y1),(x2,y2) からの距離がともに 5 である格子点は存在しますか?
注記
xy 座標平面上にある点のうち、x 座標と y 座標がともに整数である点を格子点と呼びます。
また、xy 平面上の 2 点 (a,b),(c,d) の距離をユークリッド距離 (a−c)2+(b−d)2 として定義します。
参考として、xy 平面の (0,0) の上に黒丸を、(0,0) からの距離が 5 となる格子点の上に白丸を書いた図は以下のようになります。(x,y いずれかが整数となる部分に目盛り線を引いています。)
制約
- −109≤x1≤109
- −109≤y1≤109
- −109≤x2≤109
- −109≤y2≤109
- (x1,y1)=(x2,y2)
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
x1 y1 x2 y2
出力
条件を満たす格子点が存在する場合は Yes
を、存在しない場合は No
を出力せよ。
0 0 3 3
Yes
- 点 (2,1) と (x1,y1) の距離は (0−2)2+(0−1)2=5
- 点 (2,1) と (x2,y2) の距離は (3−2)2+(3−1)2=5
- 点 (2,1) は格子点
なので点 (2,1) は条件を満たします。よって Yes
を出力します。
なお、点 (1,2) も条件を満たすことが同様にして確認できます。
0 1 2 3
No
条件を満たす格子点は存在しません。よって No
を出力します。
1000000000 1000000000 999999999 999999999
Yes
点 (109+1,109−2) および点 (109−2,109+1)が条件を満たします。