#P13518. [KOI 2025 #2] 镜子

[KOI 2025 #2] 镜子

题目背景

试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。

按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。

题目描述

你正在一条数轴上玩游戏。你的角色位于位置 ss,数轴上放置了 NN 个镜子。各个镜子的位置从左到右依次为 A1A2ANA_1 \le A_2 \le \cdots \le A_N。同一个位置上可能有多个镜子。

你可以使用镜子来改变角色的位置。使用镜子后,角色的位置会移动到以该镜子为中心的对称点。也就是说,当你的角色位于位置 aa 时,如果使用位于位置 bb 的镜子,你的角色将移动到位置 2ba2b - a

NN 个镜子每个都必须且只能使用一次。也就是说,不能忽略任何一个镜子不使用,也不能对同一个镜子使用两次或以上。除了每个镜子都必须且只能使用一次这个条件外,你可以按任意顺序使用这些镜子。

你需要计算并输出在这些条件下,你的角色能到达的位置的最大值。

输入格式

第一行给定镜子的数量 NN 和你的初始位置 ss,以空格分隔。

第二行依次给定各个镜子的位置 A1,A2,,ANA_1, A_2, \cdots, A_N,以空格分隔。

输出格式

输出将 NN 个镜子每个都使用一次后,角色最终位置的最大值。

注意,答案可能会很大,在某些编程语言中可能需要使用 64 位整型变量 (long long)。

2 0
-1 2
6
6 3
-4 -2 2 6 8 9
57
9 9
0 1 3 3 4 5 8 9 10
49
1 1000000000
-999999999
-2999999998

提示

样例 1 解释

如果先使用第 1 个镜子 (位置为 -1),再使用第 2 个镜子 (位置为 2),如上图所示,角色的最终位置为 6。反之,如果先使用第 2 个镜子,再使用第 1 个镜子,角色的最终位置为 -6。因此,本例的答案是 6。

限制条件

  • 所有给定的数都是整数。
  • 1N2000001 \le N \le 200\,000
  • 109s109-10^9 \le s \le 10^9
  • 109A1A2AN109-10^9 \le A_1 \le A_2 \le \cdots \le A_N \le 10^9

子任务

  1. (7 分) N2N \le 2
  2. (25 分) NN 是偶数,且 $A_1 = A_2 = \cdots = A_{N/2} < s < A_{N/2+1} = A_{N/2+2} = \cdots = A_N$。
  3. (19 分) NN 是偶数,且 AN/2<s<AN/2+1A_{N/2} < s < A_{N/2+1}
  4. (49 分) 无额外限制条件。