#CF2122C. 曼哈顿对

曼哈顿对

C. 曼哈顿对
时间限制:2 秒
内存限制:256 兆字节

在二维平面上给定 nn 个点 (xi,yi)(x_i, y_i),其中 nn 为偶数。选择 n2\frac{n}{2} 个不相交的点对 (ai,bi)(a_i, b_i),使得点对之间的曼哈顿距离之和最大。即最大化

$$\sum_{i=1}^{n/2} \left( |x_{a_i} - x_{b_i}| + |y_{a_i} - y_{b_i}| \right). $$

输入
每个测试包含多个测试用例。第一行包含测试用例数 tt1t1041 \leq t \leq 10^4)。
每个测试用例的描述如下:
第一行包含一个偶数 nn2n21052 \leq n \leq 2 \cdot 10^5)——点的数量。
接下来 nn 行,每行包含两个整数 xix_iyiy_i106xi,yi106-10^6 \leq x_i, y_i \leq 10^6)——第 ii 个点的坐标。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,输出 n2\frac{n}{2} 行,第 ii 行包含两个整数 aia_ibib_i —— 第 ii 个点对中两个点的索引。

如果存在多个解,输出任意一个即可。


样例
输入

2
4
1 1
3 0
4 2
3 4
10
-1 -1
-1 2
-2 -2
-2 0
0 2
2 -3
-4 -4
-4 -2
0 1
-4 -2

输出

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

说明
在第一个测试用例中,最优解是选择点对 (1,4)(1,4)(2,3)(2,3),得到的距离和为 5+3=85 + 3 = 8

在第二个测试用例中,最优解是选择点对 (1,8)(1,8)(9,10)(9,10)(5,7)(5,7)(2,3)(2,3)(4,6)(4,6),得到的距离和为 4+7+10+5+7=334 + 7 + 10 + 5 + 7 = 33