CF1895B.Points and Minimum Distance
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a sequence of integers a of length 2n . You have to split these 2n integers into n pairs; each pair will represent the coordinates of a point on a plane. Each number from the sequence a should become the x or y coordinate of exactly one point. Note that some points can be equal.
After the points are formed, you have to choose a path s that starts from one of these points, ends at one of these points, and visits all n points at least once.
The length of path s is the sum of distances between all adjacent points on the path. In this problem, the distance between two points (x1,y1) and (x2,y2) is defined as ∣x1−x2∣+∣y1−y2∣ .
Your task is to form n points and choose a path s in such a way that the length of path s is minimized.
输入格式
The first line contains a single integer t ( 1≤t≤100 ) — the number of testcases.
The first line of each testcase contains a single integer n ( 2≤n≤100 ) — the number of points to be formed.
The next line contains 2n integers a1,a2,…,a2n ( 0≤ai≤1000 ) — the description of the sequence a .
输出格式
For each testcase, print the minimum possible length of path s in the first line.
In the i -th of the following n lines, print two integers xi and yi — the coordinates of the point that needs to be visited at the i -th position.
If there are multiple answers, print any of them.
输入输出样例
输入#1
2 2 15 1 10 5 3 10 30 20 20 30 10
输出#1
9 10 1 15 5 20 20 20 10 30 10 30
说明/提示
In the first testcase, for instance, you can form points (10,1) and (15,5) and start the path s from the first point and end it at the second point. Then the length of the path will be ∣10−15∣+∣1−5∣=5+4=9 .
In the second testcase, you can form points (20,20) , (10,30) , and (10,30) , and visit them in that exact order. Then the length of the path will be ∣20−10∣+∣20−30∣+∣10−10∣+∣30−30∣=10+10+0+0=20 .