在cspj集训
题目描述 阿鱼和涛涛在玩一个游戏,他们面前有 n个任务要分配,每个任务有一个价值,第i件任务的价值为ai。
游戏开始后,每一回合,玩家可以在剩余的所有任务里面选择一个拿走。游戏会持续到所有任务都被拿完为止,由阿鱼先进行回合操作。
游戏结束时,阿鱼所拿到的所有任务的价值和为A,涛涛所拿到的所有任务的价值和为B。游戏最后的分数为A−B的绝对值。阿鱼想要使得两人最后的结果差值最大,涛涛想要让两人最后的结果差值最小,且两人都足够聪明所以每次都能挑选最优的策略。
这个游戏明天就要开始了,阿鱼先手的优势比较大,所以涛涛想要今天去偷偷操作一些任务的价值。他可以给一些任务增加一个正整数的价值,然而为了不被聪明的阿鱼发现端倪,涛涛所能增加的价值总和必须不超过k。顺带一提,涛涛不能减小任务的价值,只能增大。
经过涛涛操作后,游戏的分数最小是多少?
输入格式 第一行输入两个整数 n和k,分别代表任务总数和涛涛所能增加的最大总价值和。
第二行给出n个整数,a1,a2 ,…,an表示每一件任务的初始价值。
数据范围 2≤n≤2×10^5, 0≤k≤10^9, 1≤ai≤10^9
输出格式 输出涛涛操作后A−B的最小值。
样例解释 第二组样例 2 2个任务,最大操作为 5 5 全部对第一个任务进行操作 变为 6 6 1 0 10 最后结果为 4 4
样例输入 4 6 3 1 2 4 样例输出 0 样例输入 2 5 1 10 样例输出 4 样例输入 3 0 10 15 12 样例输出 13