trang chủ / đề bài / delivery

Giao Hàng

Đề bài

Mô tả

Trên mặt phẳng toạ độ nguyên có N điểm giao hàng, đôi một phân biệt. Điểm thứ i nằm ở toạ độ (xi,yi).

Người giao hàng xuất phát từ điểm 1, lần lượt đi tới điểm 2, điểm 3, ..., điểm N, rồi quay về điểm 1. Mỗi bước đi là một ô theo một trong bốn hướng lên, xuống, trái, phải và mất 1 phút; mặt phẳng là vô hạn nên có thể đi ra ngoài phạm vi các điểm đã cho.

Trên mỗi chặng, đường đi không được đi qua điểm giao hàng nào khác. Chỉ điểm xuất phát và điểm đích của chặng đó là được phép; tất cả N−2 điểm còn lại là vật cản, kể cả những điểm đã giao hoặc chưa giao.

Hãy tính tổng thời gian ít nhất để hoàn thành cả hành trình, hoặc in ra −1 nếu có chặng nào không thể đi được.

Dữ liệu vào

  • Dòng 1: số nguyên N.
  • N dòng tiếp theo: dòng thứ i chứa hai số nguyên xi và yi.

Dữ liệu ra

  • Một số nguyên: tổng thời gian ít nhất, hoặc −1.

Ràng buộc

  • 1≤N≤100
  • 1≤xi,yi≤106
  • Các điểm đôi một phân biệt

Ví dụ

Input Output Giải thích
4
2 2
2 4
2 1
1 3
12 Chặng 1→2 mất 2. Chặng 2→3 đi từ (2,4) xuống (2,1) nhưng điểm 1 ở (2,2) chắn đường, phải vòng qua nên mất 5 thay vì 3. Chặng 3→4 mất 3, chặng 4→1 mất 2.
3
5 1
5 9
5 5
18 Cả ba điểm cùng cột. Chặng 1→2 bị điểm 3 chắn giữa nên mất 10 thay vì 8. Hai chặng còn lại không bị chắn, mất 4 và 4.
10
1 1
5 5
5 7
6 6
7 5
6 4
5 3
4 4
3 5
4 6
-1 Tám điểm từ 3 đến 10 tạo thành một vòng kín quanh điểm 2. Ở chặng 1→2 chúng đều là vật cản, nên không có cách nào đi từ (1,1) vào (5,5).

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0