#P13518. [KOI 2025 #2] 镜子
[KOI 2025 #2] 镜子
题目背景
试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。
按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。
题目描述
你正在一条数轴上玩游戏。你的角色位于位置 ,数轴上放置了 个镜子。各个镜子的位置从左到右依次为 。同一个位置上可能有多个镜子。
你可以使用镜子来改变角色的位置。使用镜子后,角色的位置会移动到以该镜子为中心的对称点。也就是说,当你的角色位于位置 时,如果使用位于位置 的镜子,你的角色将移动到位置 。
这 个镜子每个都必须且只能使用一次。也就是说,不能忽略任何一个镜子不使用,也不能对同一个镜子使用两次或以上。除了每个镜子都必须且只能使用一次这个条件外,你可以按任意顺序使用这些镜子。
你需要计算并输出在这些条件下,你的角色能到达的位置的最大值。
输入格式
第一行给定镜子的数量 和你的初始位置 ,以空格分隔。
第二行依次给定各个镜子的位置 ,以空格分隔。
输出格式
输出将 个镜子每个都使用一次后,角色最终位置的最大值。
注意,答案可能会很大,在某些编程语言中可能需要使用 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。
限制条件
- 所有给定的数都是整数。
子任务
- (7 分) 。
- (25 分) 是偶数,且 $A_1 = A_2 = \cdots = A_{N/2} < s < A_{N/2+1} = A_{N/2+2} = \cdots = A_N$。
- (19 分) 是偶数,且 。
- (49 分) 无额外限制条件。