#1152. 连连看

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: nocriz🦆

题目描述

平面上有 nn 个点,可能两个点重叠。

你可以多次选择两个点 (xi,yi),(xj,yj)(x_i,y_i),(x_j,y_j),进行连接,两个点都会消失,你会获得 max(xixj,yiyj)\max(|x_i−x_j|,|y_i−y_j|) 点数。

你需要使获得点数的总和最大。为了让这个题目变得更难,你还需要输出方案。

输入格式

第一行一个正整数 1n1051 \le n \le 10^5

接下来共 nn 行,每行两个正整数 1xi,yi1091 \le x_i,y_i \le 10^9

输出格式

第一行一个正整数 mm 表示你进行连接的次数。

接下来 mm 行每行两个数 a,ba,b,表示你连接a,ba,b 两个点。

你需要保证没有任何一个编号出现过两次。

如果你的方案最优,就可以AC。

样例

样例输入

3
5 12
3 9
4 3

样例输出

1
1 3