trang chủ / bài tập / ptsplane

Đường đi Hamilton Manhattan

Đề bài

Mô tả

Trên mặt phẳng có n điểm với tọa độ nguyên (xi,yi), trong đó 0xi,yi106. Khoảng cách giữa hai điểm ab được tính theo khoảng cách Manhattan:

d(a,b)=|xaxb|+|yayb|

Một đường đi Hamilton là một hoán vị p1,p2,,pn của các số 1,2,,n. Độ dài của đường đi này được định nghĩa là:

L=i=1n1d(pi,pi+1)

Hãy tìm một đường đi Hamilton có độ dài không vượt quá 25·108. Lưu ý rằng bạn không cần tối thiểu hoá độ dài. Bài toán đảm bảo luôn tồn tại đáp án thỏa mãn.

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

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • Dòng thứ i+1 chứa hai số nguyên xiyi — tọa độ của điểm thứ i.

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

Dữ liệu ra

In ra hoán vị p1,p2,,pn — đường đi Hamilton thỏa mãn L25·108.

Ràng buộc

  • 1n106
  • 0xi,yi106

Ví dụ

Input Output Giải thích
5
0 7
8 10
3 4
5 0
9 12
4 3 1 2 5 Tổng độ dài đường đi 43125(2+4)+(3+3)+(8+3)+(1+2)=2625·108.
2
0 0
1000000 1000000
1 2 Chỉ có một đường đi duy nhất, độ dài 2·106.
4
0 0
0 1000000
1000000 0
1000000 1000000
1 2 3 4 Một thứ tự duyệt qua bốn góc hình vuông; độ dài 106+(106+106)+106=4·106. Có thể có nhiều đáp án khác.

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