2次元平面上でビリヤードをしたとき、(Sx, Sy)にある球が(Gx, Gy)を通過させるためには、壁となっているx軸のどこを狙えばいいのか、求める問題です。
提出
sx, sy, gx, gy = map(int, input().split())
print((sx*gy+sy*gx)/(sy+gy))
目標地点(Gx, Gy)を反転すると、(Sx, Sy)との直線になることが分かります。
この直線とx軸の交点が答えになります。
上の図から、SyとG’yの長さが「1 : 2」となっていることがわかります。
直線とx軸の交点をAとすると、左右の三角形は相似であるので、同じように「A-Sx : Gx-A = 1 : 2」となります。
これらのことから、
A-Sx : Gx-A = Sy : Gy
A = (Sx × Gy + Sy × Gx)/(Sy + Gy)
となるので、この計算結果を出力します。