P13518 [KOI 2025 #2] 镜子

题目背景

试题来源:。中文翻译做了少量本土化修改。 按照[署名—非商业性使用—相同方式共享 4.0 协议国际版](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans)进行授权。

题目描述

你正在一条数轴上玩游戏。你的角色位于位置 $s$,数轴上放置了 $N$ 个镜子。各个镜子的位置从左到右依次为 $A_1 \le A_2 \le \cdots \le A_N$。同一个位置上可能有多个镜子。 你可以使用镜子来改变角色的位置。使用镜子后,角色的位置会移动到以该镜子为中心的对称点。也就是说,当你的角色位于位置 $a$ 时,如果使用位于位置 $b$ 的镜子,你的角色将移动到位置 $2b - a$。 这 $N$ 个镜子每个都必须且只能使用一次。也就是说,不能忽略任何一个镜子不使用,也不能对同一个镜子使用两次或以上。除了每个镜子都必须且只能使用一次这个条件外,你可以按任意顺序使用这些镜子。 你需要计算并输出在这些条件下,你的角色能到达的位置的最大值。

输入格式

第一行给定镜子的数量 $N$ 和你的初始位置 $s$,以空格分隔。 第二行依次给定各个镜子的位置 $A_1, A_2, \cdots, A_N$,以空格分隔。

输出格式

输出将 $N$ 个镜子每个都使用一次后,角色最终位置的最大值。 注意,答案可能会很大,在某些编程语言中可能需要使用 64 位整型变量 (long long)。

说明/提示

### 样例 1 解释 ![](https://cdn.luogu.com.cn/upload/image_hosting/rjvbt6e9.png) 如果先使用第 1 个镜子 (位置为 -1),再使用第 2 个镜子 (位置为 2),如上图所示,角色的最终位置为 6。反之,如果先使用第 2 个镜子,再使用第 1 个镜子,角色的最终位置为 -6。因此,本例的答案是 6。 ### 限制条件 * 所有给定的数都是整数。 * $1 \le N \le 200\,000$ * $-10^9 \le s \le 10^9$ * $-10^9 \le A_1 \le A_2 \le \cdots \le A_N \le 10^9$ ### 子任务 1. (7 分) $N \le 2$。 2. (25 分) $N$ 是偶数,且 $A_1 = A_2 = \cdots = A_{N/2} < s < A_{N/2+1} = A_{N/2+2} = \cdots = A_N$。 3. (19 分) $N$ 是偶数,且 $A_{N/2} < s < A_{N/2+1}$。 4. (49 分) 无额外限制条件。