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