编程题
### 问题描述 肖恩想检验一下暑期特训算法班的同学们的学习成果,于是给他们出了这样一个问题。 有三个箱子和一堆球,每个球上面都会有一个数字表示这个球的得分。 $Alice$ 需要决定把这些球分别装到哪个箱子里, $Bob$ 会从每个箱子里面取出一个球代表这个箱子,并把第一个箱子取出来球上面的数字记为 $a$ ,第二个箱子取出来球上面的数字记为 $b$ ,第三个箱子取出来球上面的数字记为 $c$ ,然后为 $Alice$ 计算他的得分。得分定义为 $abs(a-b)+abs(b-c)$ 。 $Bob$ 不希望 $Alice$ 能取得太高的得分,于是他会使点坏,他总是会选择一种能使 $Alice$ 得分更低的方式来取球。 $Alice$ 当然希望自己能取得更高的得分,所以他会用最优的策略来分配所有球分别放进那个箱子里。请你计算在 $Bob$ 使坏的情况下, $Alice$ 最终可能取得的最高得分。 ### 输入描述 第一行输入一个整数 $n$ ,表示球的总数。 第二行输入 $n$ 个整数,第 $i$ 个整数 $a[i]$ 表示第 $i$ 个球上的数字。 数据保证 $1 \leq n \leq 2 \times 10^5,1 \leq a[i] \leq 10^9$ 。 ### 输出描述 输出一个数字,表示 $Alice$ 可能取得的最高得分。 ### 样例输入 ``` 5 1 2 3 4 5 ``` ### 样例输出 ``` 5 ``` ### 说明 $Alice$ 有这样一种分配方案: 第一个箱子: $2,3,4$ 。 第二个箱子:$1$ 。 第三个箱子: $5$ 。 $Bob$ 不管怎么使坏, $Alice$ 的得分都不会低于 $abs(2-1)+abs(1-5)=1+4=5$ 。
查看答案
赣ICP备20007335号-2