B - アキレスと亀 Editorial /

Time Limit: 2 sec / Memory Limit: 64 MB

問題文

高橋君は、カメが大好きです。高橋君は L メートル先にカメを見つけたので、このカメを追いかけて、捕まえようと思いました。
ですが、カメは高橋君が苦手です。カメは、高橋君から追いかけられ始めた瞬間、高橋君と反対の方向に逃げていきます。
高橋君の追いかける速度は秒間 v_a メートルで、カメの逃げる早さは秒間 v_b メートルです。

ここで高橋君はふと疑問に思いました。
高橋君が、今カメのいる場所までたどり着いた時、カメはさらに少し先に進んでいます。
そのカメがいる場所まで高橋君がたどり着くと、カメはその少し先にまた進んでいます。
これでは何度繰り返しても永遠にカメに追いつかないのではないでしょうか。

高橋君は、この事実を調査するため、この動作を N 回繰り返した時に、カメと高橋君の距離がどれだけ縮まっているかを調べたいです。
高橋君とカメの距離を出力するプログラムを作成してください。
なお、高橋君はカメがいるところまでまっすぐ最短距離を進みます。
また、動作を開始した時点でカメがいたところまで高橋君が移動することを 1 回の移動として数えるので、それぞれの移動にかかる時間が異なることに気をつけてください。

入力

入力は以下の形式で標準入力から与えられる。
N v_a v_b L
  • 1 行目に、高橋君の移動回数を表す整数 N(1≦N≦100) 、高橋君の秒間移動距離を表す整数 v_a(1≦v_a≦100)、カメの秒間移動距離を表す整数 v_b(1≦v_b<v_a)、高橋君とカメの最初の距離を表す整数 L(1≦L≦100) が、空白区切りで与えられる。

出力

カメのいる場所に高橋君が移動する動作を N 回行った後の、高橋君とカメの距離を出力せよ。
出力は標準出力におこない、末尾には改行をいれること。
出力は絶対誤差あるいは相対誤差の少なくとも片方が 10^{−6} 以下であれば許容される。

入力例 1

3 2 1 16

出力例 1

2
  • 1 回目の移動で、高橋君が距離 16 メートルを 8 秒で移動します。この時、カメは 8 メートル先に進んでいます。
  • 2 回目の移動で、高橋君が距離 8 メートルを 4 秒で移動します。この時、カメは 4 メートル先に進んでいます。
  • 3 回目の移動で、高橋君が距離 4 メートルを 2 秒で移動します。この時、カメは 2 メートル先に進んでいます。

入力例 2

100 100 1 100

出力例 2

0
  • 高橋君が秒速 100 メートルで走っても、カメに追いつくことはできませんが、距離は 0 に限りなく近くなります。
  • 指数表記での出力ですと、不正解となることがありますので、注意してください。

入力例 3

80 50 49 72

出力例 3

14.302717205907