CF1430B.Barrels

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Barrels

题目描述

nn 个水桶排成一排,从左到右编号为 11nn。最初,第 ii 个水桶中有 aia_i 升水。

你可以将水从一个水桶倒到另一个水桶。在一次倒水操作中,你可以选择两个不同的水桶 xxyy(第 xx 个水桶不能是空的),并将任意数量的水从水桶 xx 倒入水桶 yy(可以全部倒完)。你可以假设所有水桶的容量都是无限的,因此可以向任意水桶倒入任意数量的水。

请计算,在最多可以进行 kk 次倒水操作的情况下,水桶中最多水量与最少水量的最大可能差值。

例如:

  • 如果有四个水桶,每个水桶中都有 55 升水,且 k=1k=1,你可以将第二个水桶的 55 升水全部倒入第四个水桶,此时各水桶的水量为 [5,0,5,10][5, 0, 5, 10],最大与最小的差值为 1010
  • 如果所有水桶都是空的,你无法进行任何操作,因此最大与最小的差值仍为 00

输入格式

第一行包含一个整数 tt1t10001 \le t \le 1000),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nnkk1k<n21051 \le k < n \le 2 \cdot 10^5),分别表示水桶的数量和最多可以进行的倒水次数。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ai1090 \le a_i \le 10^{9}),其中 aia_i 表示第 ii 个水桶初始的水量。

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

输出格式

对于每个测试用例,输出在最多可以进行 kk 次倒水操作的情况下,水桶中最多水量与最少水量的最大可能差值。

说明/提示

由 ChatGPT 4.1 翻译

样例

2
4 1
5 5 5 5
3 2
0 0 0
10
0

在线编程 IDE

建议全屏模式获得最佳体验