小苯的木棍切割
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小苯有 n 根木棍,编号从 1n,其中第 i 根的长度为 a_i,现在有一台切割机对小苯的木棍们做出如下的过程:

\bullet 如果小苯拥有的木棍数量为 0,则停止工作。
\bullet 否则将小苯所有的木棍都切去最短的木棍的长度。(如果木棍的长度变成 0,则木棍不存在。)

(形式化的:记小苯目前拥有的木棍数量为 m,其中最短的木棍长度为 mn,则对 1 \leqq i \leqq m 的每一个 i,都执行 a_i:= a_i - mn,同时如果 a_i=0 了,则此木棍不存在。)

现在小苯想知道,在所有的切割中,切割最多的那一次切掉了总长度为多少的木棍,请你帮他算一算吧。

输入描述:

每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 10^4 \right) 代表数据组数,每组测试数据描述如下:
第一行一个正整数 n\ (1 \leq n \leq 2 \times 10^5),表示小苯拥有的木棍个数。
第二行 n 个正整数 a_1\ a_2\dots \ a_n\ (1 \leq a_i \leq 10^9),表示每根木棍的长度。
(保证同一个测试文件的所有测试数据中,n 的总和不超过 3 \times 10^5。)

输出描述:

对于每组测试数据,在单独的一行输出一个正整数,表示在所有的切割过程中,单次切割总长度最大的一次切割切掉的木棍总长度。
示例1

输入

复制
1
5
1 3 20 4 5

输出

复制
15

说明

对于样例中的数据,初始的木棍为 \{1,3,20,4,5\}
第一次切割,选择切掉的长度为 mn=1,切割后木棍们的长度为 \{2,19,3,4\},切掉的总长度为 5
第二次切割,选择切掉的长度为 mn=2,切割后木棍们的长度为 \{17,1,2\},切掉的总长度为 8
第三次切割,选择切掉的长度为 mn=1,切割后木棍们的长度为 \{16,1\},切掉的总长度为 3
第四次切割,选择切掉的长度为 mn=1,切割后木棍们的长度为 \{15\},切掉的总长度为 2
第五次切割,选择切掉的长度为 mn=15,切割后所有木棍都被切完,此次切掉的总长度为 15
综上所述,单次切割掉的最大长度为 15