按 \(A_i\) 降序排序,对于每个 \(x\),答案能为 $$\max \{\space (\sum_{i=1}^{x} A_i)+2\times\max_{i=1}^{x}\{S_i\}\space,\space(\sum_{i=1}^{x-1}A_i)+\max_{i=1}^{n}\{2\times S_i+A_i\}\space\}$$因为最大距离仅算一次,所以舍去前面 \(x\) 个中最小的就好了。
先分为两组,算出血量差,遍历每一对,若交换后血量差可以减小,则交换。
另解,\(S\) 为血量和,\(f_{i,j}\) 表示 \(i\) 个人是否可以达到组成血量 \(j\),遍历 \(f_{n/2,j}\) 选出 \(\min\{|2\times f_{n/2,j}-S|\}\) 。
待填坑。