[COCI1920 - Contest 05] Bài 3: Matching

Xem PDF

Nộp bài

Điểm: 100 (thành phần)
Thời gian: 2.5s
Bộ nhớ: 512M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Bạn được cho ~N~ điểm trên mặt phẳng, với tọa độ nguyên, và ~N~ là số chẵn. Với mỗi số nguyên ~a~, có tối đa hai điểm với tọa độ ~(a, x)~. Tương tự, với mỗi số nguyên ~b~, có tối đa hai điểm với tọa độ ~(x, b)~.

Bạn có khả năng vẽ các đoạn thẳng ngang hoặc dọc giữa các cặp điểm đã cho. Liệu có thể vẽ ~\frac{N}{2}~ đường thẳng sao cho mỗi điểm đã cho là điểm cuối của đúng một đoạn thẳng và không có hai đoạn thẳng nào cắt nhau không?

Input

  • Dòng đầu tiên chứa một số nguyên chẵn ~N~ ~(2 \leq N \leq 100 000)~ từ mô tả bài toán.
  • Mỗi dòng thứ ~i~ trong ~N~ dòng tiếp theo chứa hai số nguyên ~X_i, Y_i~ ~(1 \leq X_i, Y_i \leq 100 000)~, là tọa độ của điểm thứ ~i~.

Output

  • Nếu không thể vẽ các đoạn thẳng như đã giải thích, bạn cần xuất ~NE~ (NO trong tiếng Croatia) trong một dòng.
  • Nếu có thể, bạn cần xuất ~DA~ (YES trong tiếng Croatia) trong dòng đầu tiên. Trong mỗi dòng tiếp theo của ~\frac{N}{2}~ dòng, bạn cần xuất hai số nguyên cách nhau bởi khoảng trắng ~i và ~j~ ~(1 \leq i, j \leq N)~, đại diện cho chỉ số của các điểm được kết nối bởi đoạn thẳng đã vẽ.

Chú ý

  • Subtask 1: 5 điểm với ~2 \leq N \leq 20~, với mỗi số nguyên ~a~, có một số chẵn điểm với tọa độ ~(a, x)~ và một số chẵn điểm với tọa độ ~(x, a)~.
  • Subtask 2: 6 điểm với ~2 \leq N \leq 20~.
  • Subtask 3: 7 điểm với ~2 \leq N \leq 40~.
  • Subtask 4: 40 điểm với ~2 \leq N \leq 2000~.
  • Subtask 5: 52 điểm không có ràng buộc thêm.

Sample Input 1

8
1 1
1 3
2 2
2 4
3 1
3 3
4 2
4 4

Sample Ouput 1

DA
1 5
3 7
2 6
4 8

Sample Input 2

6
1 2
1 3
2 1
2 4
3 2
3 3

Sample Ouput 2

DA
1 2
3 4
5 6

Sample Input 3

2
1 1
2 2

Sample Ouput 3

NE

Bình luận đầu tiên

Bình luận

Không có bình luận nào.