CF1408C Discrete Acceleration

题目描述

有一条长度为 $l$ 米的道路。道路的起点坐标为 $0$,终点坐标为 $l$。 有两辆车,第一辆车停在道路的起点,第二辆车停在道路的终点。它们将同时开始行驶。第一辆车将从起点驶向终点,第二辆车将从终点驶向起点。 起初,两辆车的速度都是 $1$ 米每秒。道路上有 $n$ 个旗帜,分别位于不同的坐标 $a_1, a_2, \ldots, a_n$。每当任意一辆车经过一个旗帜时,该车的速度会增加 $1$ 米每秒。 请你计算两辆车相遇(到达同一坐标)所需的时间。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。 每个测试用例的第一行包含两个整数 $n$ 和 $l$($1 \leq n \leq 10^5$,$1 \leq l \leq 10^9$),分别表示旗帜的数量和道路的长度。 每个测试用例的第二行包含 $n$ 个递增的整数 $a_1, a_2, \ldots, a_n$($1 \leq a_1 < a_2 < \ldots < a_n < l$),表示旗帜的位置。 保证所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每个测试用例,输出一个实数,表示两辆车相遇所需的时间。 如果你的答案的绝对误差或相对误差不超过 $10^{-6}$,则视为正确。更正式地说,若你的答案为 $a$,标准答案为 $b$,则当 $\frac{|a-b|}{\max{(1, b)}} \leq 10^{-6}$ 时,视为正确。

说明/提示

在第一个测试用例中,两辆车将在坐标 $5$ 处相遇。 第一辆车将在 $1$ 秒后到达坐标 $1$,此时速度增加 $1$,变为 $2$ 米每秒。再经过 $2$ 秒后到达坐标 $5$。因此,第一辆车将在 $3$ 秒后到达坐标 $5$。 第二辆车将在 $1$ 秒后到达坐标 $9$,此时速度增加 $1$,变为 $2$ 米每秒。再经过 $2$ 秒后到达坐标 $5$。因此,第二辆车也将在 $3$ 秒后到达坐标 $5$。 在第二个测试用例中,$1$ 秒后第一辆车到达坐标 $1$,速度变为 $2$ 米每秒,第二辆车到达坐标 $9$,速度仍为 $1$ 米每秒。之后,两车将在 $\frac{9-1}{2+1} = \frac{8}{3}$ 秒后相遇。因此,答案为 $1 + \frac{8}{3} = \frac{11}{3}$。 由 ChatGPT 4.1 翻译