#P15292. [MCO 2023] Two Pointers (hard version)

[MCO 2023] Two Pointers (hard version)

说明

爱丽丝和鲍勃在一条从 109-10^9 延伸至 10910^9 的极长道路上驾车。爱丽丝从点 AA 出发,鲍勃从点 BB 出发。共有 nn 个事件需要前往,其中第 ii 个事件位于位置 tit_i。每个事件必须由爱丽丝或鲍勃中的一人前往,并且他们必须 按顺序 依次访问(必须先访问事件 11,再访问事件 22,再访问事件 33,……,最后访问事件 nn)。

求爱丽丝和鲍勃驾车前往所有事件所需的最小 距离。

输入格式

第一行包含一个整数 nn1n31051\le n\le3\cdot10^5)—— 事件的数量。

第二行包含两个整数 AABB109A,B109-10^9\le A,B\le10^9)—— 爱丽丝和鲍勃的起点。

第三行包含 nn 个整数 t1,t2,,tnt_1,t_2,\dots,t_n109ti109-10^9\le t_i\le10^9)—— 爱丽丝或鲍勃必须前往的事件位置。

输出格式

输出一个整数 —— 爱丽丝和鲍勃驾车的最小总距离。

5
2 3
5 1 4 4 7
7
6
540 152
450 600 532 496 325 336
526
8
35 315
-406 -543 114 205 -840 161 540 -731
1699

提示

注释

在第一个样例中:

  • 鲍勃从位置 33 移动到位置 55 参加事件 11,行驶 22 个单位。
  • 爱丽丝从位置 22 移动到位置 11 参加事件 22,行驶 11 个单位。
  • 鲍勃从位置 55 移动到位置 44 参加事件 33,行驶 11 个单位。
  • 鲍勃停留在位置 44,参加事件 44,行驶 00 个单位。
  • 鲍勃从位置 44 移动到位置 77 参加事件 55,行驶 33 个单位。

总行驶距离为 2+1+1+0+3=72+1+1+0+3=7

在第二个样例中,爱丽丝参加了所有事件。

计分

子任务 155 分) ti,A1000|t_i|, |A| \le 1000B=109B = 10^9

子任务 288 分) n20n \le 20

子任务 31919 分) n3000n \le 3000

子任务 41212 分) n105n \le 10^5ti,A,B100|t_i|, |A|, |B| \le 100

子任务 54343 分) ti,A,B2105|t_i|, |A|, |B| \le 2 \cdot 10^5

子任务 61313 分) 无额外限制

翻译由 DeepSeek 完成