#P16732. 匹配

匹配

题目描述

给定二维平面上的 nn 个整点,保证 nn 为偶数。

当两个点的横坐标相等或纵坐标相等时,可以将这两个点匹配。

请判断是否可以将所有点两两匹配。若可以,请输出任意一种合法的匹配方案。

输入格式

第一行一个整数 TT,表示询问组数。

对于每组询问:

  • 第一行一个整数 nn,表示点的数量;
  • 接下来 nn 行,每行两个整数 xi,yix_i,y_i,表示编号为 ii 的点的坐标。

输出格式

对于每组询问:

  • 若存在合法方案,先输出一行 Yes,然后输出 n2\frac n2 行,每行两个整数 u,vu,v,表示将编号为 uuvv 的点匹配;
  • 若不存在合法方案,输出一行 No

在一个合法方案中,每个点必须恰好出现一次,并且每对匹配点的横坐标相等或纵坐标相等。

若有多种合法方案,输出任意一种即可。

本题采用 Special Judge。

样例输入

3
6
13 15
20 24
30 34
5 15
20 30
30 42
4
99 101
8 12
95 101
8 16
4
0 2
1 5
2 8
3 11

样例输出

Yes
1 4
5 2
6 3
Yes
1 3
4 2
No

样例解释

对于第一组询问:

  • 11 和点 44 的纵坐标相同;
  • 55 和点 22 的横坐标相同;
  • 66 和点 33 的横坐标相同。

因此该匹配方案合法。

数据范围

  • 对于 30%30\% 的数据,n500\sum n\le 500
  • 对于 100%100\% 的数据:
    • 2n1052\le n\le 10^5
    • n106\sum n\le 10^6
    • xi109|x_i|\le 10^9
    • yi109|y_i|\le 10^9
    • nn 为偶数。