CF1360B.Honest Coach

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

Honest Coach

题目描述

你面前有 n 名运动员 运动员的编号从左到右分别是1--n你知道每个运动员的力量 编号为i的运动员的力量为si 你需要把所有运动员分到两队里,每队至少有一人,每名运动员必须在其中一队里。 你需要在第一队里最强壮的运动员和第二队里最虚弱的运动员的差距尽可能的小。 正式的,你想把运动员分成A,B两队导致价值∣max(A)−min(B)∣尽可能的小。 其中max(A)是A队中力量最大的,min(B)是队伍中力量最小的。 例如,如果n=5,力量分别为s={3,1,2,4,6};则最理想的分配是: 第一队 A={1,2,4};第二队B={3,6}; 这样一来最大的价值的绝对值是|4-3|=1,这个例子说明了一种最佳的分成两个团队的方法。输出最小的价值|max(A)-min(B)|。

输入格式

第一行输入一个t( 1≤t≤1000 ) --输入中的测试用例数。接下来是t测试用例。

每组数据包含两行,第一行是n(2≤n≤50);

第二行包含n个数据S1,S2....Sn( 1≤Si≤1000 ) --Si表示每名运动员的力量 ,请注意,s值可能不明显。

输出格式

每组数据输出一行--把所有运动员分成两队后的∣max(A)−min(B)∣的最小值。

每个运动员都必须是这两个队中的一个。

样例

5
5
3 1 2 6 4
6
2 1 3 2 4 3
4
7 9 3 1
2
1 1000
3
100 150 200
1
0
2
999
50

在线编程 IDE

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