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 翻译