ページ

2013/02/10

[競技プログラミング][PHP][AtCoder]アキレスと亀

B - アキレスと亀

時間制限 : 2sec / スタック制限 : 16MB / メモリ制限 : 64MB

問題文

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

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

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

入力

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

出力

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

出典

B: アキレスと亀 - AtCoder Regular Contest #012 | AtCoder

回答

AtCoder/arc012_2.php at master · wada811/AtCoder · GitHub
入力例1でよく考えれば簡単。