#2008. 双向通道逃生

双向通道逃生

题目描述:

在一个长度为 LL 米的双向通道中,有 nn 个人需要尽快逃生。这个通道非常狭窄,只能允许一个人单向通过。每个人在通道中的移动速度都是 1 米每秒。

通道的两端都有出口,因此每个人只要到达通道的任意一端就可以成功逃生。然而,当两个人在通道中相遇时,由于通道狭窄,他们无法同时继续前行,只能各自转身,沿着相反的方向移动。

现在,已知每个人的初始位置,但不知道他们一开始是朝哪个方向移动的。你的任务是计算出,如果所有人同时开始移动,全部成功逃生所需的最短时间。

输入格式:

第一行输入一个整数 NN,表示需要逃生的人数。 第二行输入一个整数 LL,表示双向通道的长度(米)。 第三行输入 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n,表示每个人初始位置距离通道左端点的距离(米)。

输出格式:

输出一行一个整数,表示所有人成功逃生所需的最短时间(秒)。

输入输出样例 #1:

输入 #1

3
10
2 6 7

输出 #1

4

输入输出样例 #2:

输入 #2

7
214
1 12 7 13 176 23 191

输出 #2

38

说明/提示:

  • 对于 50%50\% 的数据:1n1031 \leq n \leq 10^3
  • 对于 100%100\% 的数据:1n1061 \leq n \leq 10^61L1061 \leq L \leq 10^60aiL0 \leq a_i \leq L