loj#P3249. 「COCI 2020.2」Matching

「COCI 2020.2」Matching

题目描述

译自 COCI 2019/2020 Contest #5 T3「Matching

给定一个偶数 NN,表示二维平面上有 NN 个整点(整点即点坐标均为整数的点)。对于每个整数 aa,最多有两个点坐标为 (a,x)(a,x),类似地,对于每个整数 bb,最多有两个点坐标为 (x,b)(x,b)

你可以在两点之间画一条竖直或水平的线段,请问是否可能画出 N2\frac{N}{2} 条线段,使得每个给出的点都是恰好一条线段的一个端点,且线段之间两两不相交。

输入格式

第一行一个整数 NN,意义如题目描述;

接下来 NN 行,每行两个整数 Xi,YiX_i,Y_i,表示第 ii 个点的坐标。

输出格式

如果不能按题目描述的规定划线,则在第一行输出 NE(克罗地亚语中的「否」)。

否则第一行输出 DA(克罗地亚语中的「是」)。在接下来的 N2\frac{N}{2} 行,每行输出两个整数 i,ji,j,用一个空格隔开,表示 i,ji,j 两个点间画一条线段。

8
1 1
1 3
2 2
2 4
3 1
3 3
4 2
4 4
DA
1 5
3 7
2 6
4 8
6
1 2
1 3
2 1
2 4
3 2
3 3
DA
1 2
3 4
5 6
2
1 1
2 2
NE

数据范围与提示

对于所有数据,2N105,1Xi,Yi1052\le N\le 10^5,1\le X_i,Y_i\le 10^5

详细子任务附加限制及分值如下:

Subtask 附加限制 分值
11 2N202\le N\le 20,对于任意整数 aa,坐标为 (a,x),(x,a)(a,x),(x,a) 的点都有偶数个 55
22 2N202\le N\le 20
33 2N402\le N\le 40 66
44 2N2×1032\le N\le 2\times 10^3 3636
55 无附加限制 4848