Contest Duration: - (local time) (100 minutes) Back to Home
B - Billiards /

Time Limit: 2 sec / Memory Limit: 1024 MB

問題文

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

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

制約

• -10^6 \leq S_x, G_x \leq 10^6
• 0 < S_y, G_y \leq 10^6
• S_x \neq G_x
• 入力はすべて整数

入力

S_x S_y G_x G_y


出力

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

入力例 1

1 1 7 2


出力例 1

3.0000000000


入力例 2

1 1 3 2


出力例 2

1.6666666667


入力例 3

-9 99 -999 9999


出力例 3

-18.7058823529


Score : 200 points

Problem Statement

Takahashi is playing billiards on a two-dimensional plane. The x-axis functions as a wall; when a ball hits the axis, it will bounce off the axis so that the angle of incidence equals the angle of reflection.

Takahashi's ball is now at (S_x,S_y). When he strikes the ball aiming for some point, it will roll in a straight line towards that point.

To make the ball hit the x-axis exactly once and then pass (G_x, G_y), where along the x-axis should he aim for?

Constraints

• -10^6 \leq S_x, G_x \leq 10^6
• 0 < S_y, G_y \leq 10^6
• S_x \neq G_x
• All values in input are integers.

Input

Input is given from Standard Input in the following format:

S_x S_y G_x G_y


Output

Let (x, 0) be the point Takahashi should aim for. Print x.

Your output will be considered correct when its absolute or relative error from our answer is at most 10^{-6}.

Sample Input 1

1 1 7 2


Sample Output 1

3.0000000000


As shown below, we can make the ball pass (7, 2) by striking it aiming for (3, 0).

Sample Input 2

1 1 3 2


Sample Output 2

1.6666666667


Sample Input 3

-9 99 -999 9999


Sample Output 3

-18.7058823529


The output will be considered correct when its absolute or relative error from our answer is at most 10^{-6}.