AT_arc012_2 [ARC012B] アキレスと亀

题目描述

[problemUrl]: https://atcoder.jp/contests/arc012/tasks/arc012_2 高桥君非常喜欢乌龟。他发现前方 $L$ 米处有一只乌龟,于是决定追上并抓住它。 然而,乌龟很怕高桥君。一旦高桥君开始追赶,乌龟就会立刻朝着与高桥君相反的方向逃跑。 高桥君的追赶速度为每秒 $v_a$ 米,乌龟的逃跑速度为每秒 $v_b$ 米。 这时,高桥君突然产生了一个疑问。 当高桥君到达乌龟当前所在的位置时,乌龟又已经向前移动了一段距离。 当高桥君再次到达乌龟的新位置时,乌龟又向前移动了一点。 这样不断重复下去,是不是无论多少次都无法追上乌龟呢? 为了调查这个现象,高桥君想知道经过 $N$ 次这样的追赶后,他与乌龟之间的距离缩短了多少。 请你编写一个程序,输出高桥君与乌龟之间的距离。 高桥君每次都会以最短距离直线追赶乌龟。 需要注意的是,每次移动的时间都不同,因为每次高桥君都要追到乌龟上一次所在的位置,这被计为一次移动。 输入按如下格式从标准输入中给出。

输入格式

第一行包含四个用空格分隔的整数,分别表示高桥君的移动次数 $N$($1 \leq N \leq 100$)、高桥君每秒移动距离 $v_a$($1 \leq v_a \leq 100$)、乌龟每秒移动距离 $v_b$($1 \leq v_b < v_a$)、以及高桥君与乌龟的初始距离 $L$($1 \leq L \leq 100$)。

输出格式

输出经过 $N$ 次追赶后,高桥君与乌龟之间的距离。输出到标准输出,末尾需换行。 只要绝对误差或相对误差至少有一项不超过 $10^{-6}$ 即可被接受。

说明/提示

- 示例输入 ``` 3 2 1 16 ``` - 示例输出 ``` 2 ``` - 说明: - 第 1 次移动,高桥君用 $8$ 秒跑完 $16$ 米,此时乌龟前进了 $8$ 米。 - 第 2 次移动,高桥君用 $4$ 秒跑完 $8$ 米,此时乌龟前进了 $4$ 米。 - 第 3 次移动,高桥君用 $2$ 秒跑完 $4$ 米,此时乌龟前进了 $2$ 米。 - 示例输入 ``` 100 100 1 100 ``` - 示例输出 ``` 0 ``` - 说明: - 即使高桥君以每秒 $100$ 米的速度奔跑,也无法真正追上乌龟,但距离会无限接近于 $0$。 - 注意不要使用科学计数法输出,否则会被判为不正确。 - 示例输入 ``` 80 50 49 72 ``` - 示例输出 ``` 14.302717205907 ``` 由 ChatGPT 4.1 翻译