A1822.安排
入门
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
AC 狗是一名跳高教练,它面前有 n 名跳高远动员,将运动员从左到右 1 到 n 编号,AC 狗知道每一位运动员的力量值 si (1≤i≤n)。
现在需要将运动员们分成两队去参加比赛,每一队至少有一名运动员,并且每个运动员都必须分到其中一个队中。
AC 狗希望第一队中最强的运动员(力量值最大)与第二队中最弱的运动员(力量值最小)之间的力量值差异尽可能小。
从形式上讲,它希望将运动员分为 A 队和 B 队,以便使 ∣max(A)−min(B)∣ 尽可能小。
例如: n=5,运动员的力量值是 s=[3,1,2,6,4],那么其中一种分队的方法是:
- 第一队:A=[1,2,4]
- 第二队:B=[3,6]
在这种情况下,∣max(A)−min(B)∣ = ∣4−3∣ = 1,这是最佳的分法之一。
给定 n 和每一位运动员的力量值,请你帮 AC 狗安排最佳的分法,输出最小的 ∣max(A)−min(B)∣。
输入格式
第一行包含一个整数 T (1≤T≤1000) — 表示测试用例的数量。
每个测试用例由两行组成。
第一行包含正整数 n(2≤n≤50) — 运动员人数。
第二行包含 n 个正整数 s1 ~ sn (1≤si≤1000)。
输出格式
对于每个测试用例打印一个整数 — 最小的 ∣max(A)−min(B)∣。
输入输出样例
输入#1
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
1 0 2 999 50
说明/提示
在第二个测试用例中,最佳分法之一是
- A=[2,1],B=[3,2,4,3]
所以答案是∣max(A)−min(B)∣ = ∣2−2∣=0。