2627: 点与距离
[Creator : ]
Description
给你一个长度为 2n 的整数序列 a。您必须将这些 2n 个整数拆分成 n 对;每对代表平面上一个点的坐标。序列 a 中的每个数字都应成为一个点的 x 或 y 坐标。注意,有些点可能是相等的。
在这些点形成之后,你必须选择一条 s 路径,从其中一个点出发,在其中一个点结束,并且至少访问所有 n 个点一次。
路径 s 的长度是路径上所有相邻点之间的距离之和。在这个问题中,两点 (x1, y1) 和 (x2, y2) 之间的距离定义为 |x1 - x2| + |y1 - y2|。
你的任务是组成 n 个点,并选择一条路径 s,使路径 s 的长度最小。
Input
第一行包含一个整数 t(1 ≤ t ≤ 100)——测试用例的数量。
每个测试用例的第一行包含一个整数 n(2 ≤ n ≤ 100)——要形成的点的个数。
下一行包含 2n 个整数 a1, a2, ..., a2n(0 ≤ ai ≤ 1,000)——序列 a 的描述。
Output
对于每个测试用例,在第一行打印路径 s 的最小可能长度。
Sample Input Copy
2
2
15 1 10 5
3
10 30 20 20 30 10
Sample Output Copy
9
20
HINT
注释
例如,在第一个测试案例中,可以形成点 (10, 1) 和 (15, 5),并从第一个点开始绘制路径 s,在第二个点结束。那么路径的长度就是:
|10 - 15| + |1 - 5| = 5 + 4 = 9
在第二个测试案例中,你可以将点 (20, 20)、(10, 30) 和 (10, 30) 构成路径,并按照准确的顺序访问它们。那么路径的长度就是:
|20 - 10| + |20 - 30| + |10 - 10| + |30 - 30| = 10 + 10 + 0 + 0 = 20