30003 - 曼哈顿最小生成树

给定平面上的 n 个点 (x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)

考虑一个有 n 个结点的完全图,对于 1\le u,v\le n(u\ne v),结点 u,v 之间有一条权值为 |x_u-x_v|+|y_u-y_v| 的边。

请求出该图的最小生成树。

输入

第一行输入一个整数 n 表示点的个数。

接下来 n 行,第 i 行输入两个整数 (x_i,y_i),表示第 i 个点的坐标。

输出

第一行包含一个整数 x 表示最小生成树的边权之和。

接下来 (n-1) 行,第 i 行包含两个整数 (u_i,v_i),表示最小生成树中的一条边。

样例

输入

6
3 8
4 9
2 1
10 5
4 9
2 0

输出

21
5 2
6 3
1 2
3 1
4 1

提示

对于 20\% 的数据,1\le n\le 1000

对于 100\% 的数据,1\le n\le 2\times 10^50\le x_i,y_i\le 10^9

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题