100 atcoder#ABC183B. [ABC183B] Billiards

[ABC183B] Billiards

配点 : 200200

問題文

高橋君は 22 次元平面上でビリヤードをしています。xx 軸は壁になっており、球をぶつけると入射角と反射角が等しくなるように球が跳ね返されます。

いま高橋君の球が (Sx,Sy)(S_x,S_y) にあります。ある座標を狙って球を撞くと、球はその座標へ向かって直線的に転がっていきます。

xx 軸で球をちょうど 11 回反射させたのち、(Gx,Gy)(G_x,G_y) を通過させるためには、xx 軸のどこを狙えば良いでしょうか?

制約

  • 106Sx,Gx106-10^6 \leq S_x, G_x \leq 10^6
  • 0<Sy,Gy1060 < S_y, G_y \leq 10^6
  • SxGxS_x \neq G_x
  • 入力はすべて整数

入力

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

SxS_x SyS_y GxG_x GyG_y

出力

狙う座標を (x,0)(x,0) としたときの xx を出力せよ。

なお、想定解答との絶対誤差または相対誤差が 10610^{-6} 以下であれば正解として扱われる。

1 1 7 2
3.0000000000

図のように (3,0)(3,0) を狙って球を撞くことで (7,2)(7,2) を通過させることができます。

図

1 1 3 2
1.6666666667

図

-9 99 -999 9999
-18.7058823529

絶対誤差または相対誤差が 10610^{-6} 以下のとき正解となります。