#CF2004C. 拆分物品*

拆分物品*

C. 拆分物品
时间限制:每测试点 22
内存限制:256256 兆字节

Alice 和 Bob 有 nn 个物品,他们想把这些物品分给两人,于是决定玩一个游戏。所有物品都有一个价格,第 ii 个物品的价格是 aia_i。玩家从 Alice 开始轮流行动。

在每个回合中,当前玩家选择一个剩下的物品并拿走它。游戏一直进行到所有物品都被拿完为止。

AA 是 Alice 拿走的物品的总价格,BB 是 Bob 拿走的物品的总价格。那么游戏的得分就是 ABA - B

Alice 希望最大化这个得分,Bob 希望最小化它。两人都会以最优策略进行游戏。

然而,游戏将在明天进行,所以今天 Bob 可以对价格做一些修改。他可以选择若干(可以是零个或全部)物品,并将它们的价格增加一个整数值(每个物品可以增加不同的值,也可以增加相同的值)。但是,所有物品增加的总和必须小于或等于 kk。否则,Alice 可能会起疑心。注意:Bob 只能增加价格,不能减少。

Bob 能实现的最小可能得分是多少?


输入格式
第一行包含一个整数 tt1t50001 \le t \le 5000)——测试用例的数量。接下来是 tt 个测试用例。

每个测试用例的第一行包含两个整数 nnkk2n21052 \le n \le 2 \cdot 10^50k1090 \le k \le 10^9)——物品的数量以及 Bob 可以增加的总和的最大值。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9)——物品的初始价格。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出格式
对于每个测试用例,输出一个整数——Bob 在增加若干(可能全部)物品的价格后,能实现的最小可能得分 ABA - B


样例输入

4
2 5
1 10
3 0
10 15 12
4 6
3 1 2 4
2 4
6 9

样例输出

4
13
0
0

样例解释

  • 第一个测试用例:Bob 可以将 a1a_1 增加 55,使得价格变为 [6,10][6,10]。明天,Alice 会拿走 1010,Bob 拿走 66。得分为 106=410 - 6 = 4,这是可能的最小值。

  • 第二个测试用例:Bob 无法修改价格,因此得分是 (15+10)12=13(15 + 10) - 12 = 13,因为 Alice 会先拿 1515,Bob 拿 1212,然后 Alice 拿 1010

  • 第三个测试用例:Bob 可以将 a1a_1 增加 11a2a_2 增加 33a3a_3 增加 22,总增加 1+3+261+3+2 \le 6,价格变为 [4,4,4,4][4,4,4,4]。显然得分为 (4+4)(4+4)=0(4+4)-(4+4)=0

  • 第四个测试用例:Bob 可以将 a1a_1 增加 33,价格变为 [9,9][9,9],得分为 99=09-9=0