Xoá Cặp Cân Bằng

Đề bài

Mô tả

Trong không gian ba chiều có N điểm phân biệt, được đánh số từ 1 đến N. Điểm thứ i có toạ độ (xi,yi,zi). Số điểm N là số chẵn.

Bạn cần xoá hết cả N điểm bằng một dãy gồm N/2 lượt. Trong mỗi lượt, bạn chọn hai điểm ab chưa bị xoá sao cho chúng tạo thành một cặp cân bằng, rồi xoá cả hai.

Cặp điểm ab được gọi là cân bằng nếu không tồn tại điểm c nào khác (trong số các điểm chưa bị xoá) nằm trong hình hộp chữ nhật nhỏ nhất, có các cạnh song song với các trục toạ độ, bao quanh ab. Cụ thể, điểm c nằm trong hình hộp đó khi và chỉ khi:

min(xa,xb)xcmax(xa,xb),min(ya,yb)ycmax(ya,yb),min(za,zb)zcmax(za,zb).

Lưu ý rằng hình hộp có thể suy biến (khi hai điểm trùng nhau ở một hoặc nhiều toạ độ).

Thứ tự xoá là quan trọng: một cặp có thể chưa cân bằng ở thời điểm ban đầu nhưng lại trở nên cân bằng sau khi một số điểm khác đã bị xoá. Người ta chứng minh được rằng luôn tồn tại cách xoá hết tất cả các điểm.

Hãy tìm một cách xoá hết N điểm sau N/2 lượt.

Dữ liệu vào

  • Dòng đầu chứa số nguyên chẵn N: số lượng điểm.
  • N dòng tiếp theo, dòng thứ i chứa ba số nguyên xi,yi,zi: toạ độ điểm thứ i.

Không có hai điểm nào trùng nhau.

Dữ liệu ra

In ra N/2 dòng, mỗi dòng chứa hai số nguyên ai,bi (1ai,biN): chỉ số hai điểm bị xoá ở lượt thứ i, theo đúng thứ tự thực hiện. Mỗi số nguyên từ 1 đến N phải xuất hiện đúng một lần trong toàn bộ kết quả.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 2N5000, N chẵn.
  • 108xi,yi,zi108.
  • Không có hai điểm nào trùng nhau.

Ví dụ

Input Output Giải thích
6
3 1 0
0 3 0
2 2 0
1 0 0
1 3 0
0 1 0
6 2
4 5
3 1
Tất cả các điểm nằm trên mặt phẳng z=0. Xoá cặp (6,2), rồi (4,5), cuối cùng (3,1). Đây chỉ là một trong nhiều đáp án hợp lệ.
8
0 1 1
1 0 1
1 1 0
1 1 1
2 2 2
3 2 2
2 3 2
2 2 3
3 4
5 8
1 2
7 6
Bốn điểm đầu nằm gần gốc toạ độ, bốn điểm sau nằm quanh (2,2,2). Ở mỗi lượt, cặp được chọn không chứa điểm nào khác (còn lại) trong hình hộp của nó.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0