Tuần tra cảnh sát
Đề bài
Mô tả
Trên trục số có tên tội phạm đứng cố định tại các vị trí nguyên cho trước. Bạn cần chọn một vị trí nguyên trên trục số để xây đồn cảnh sát.
Đồn cảnh sát có một xe tuần tra, mỗi chuyến chở được tối đa tên tội phạm. Mỗi chuyến: xuất phát từ , đi đến chỗ tội phạm, bắt giữ, rồi quay lại để giam. Tội phạm đứng im chờ bị bắt. Nếu trên đường đi nhặt được tội phạm đứng trùng vị trí thì coi như bắt được ngay (không tốn quãng đường).
Hãy tìm vị trí sao cho tổng quãng đường xe tuần tra phải đi để bắt hết tất cả tội phạm là nhỏ nhất, và in ra giá trị đó.
Dữ liệu vào
- Dòng 1: hai số nguyên và .
- Dòng 2: số nguyên là vị trí của các tội phạm trên trục số, cho theo thứ tự không giảm. Có thể có nhiều tội phạm cùng một vị trí.
Dữ liệu ra
Một số nguyên duy nhất: tổng quãng đường nhỏ nhất.
Ràng buộc
- Giá trị tuyệt đối của các vị trí không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 6 1 2 3 |
4 | Đặt đồn tại . Một chuyến chở được cả 3 tên (vì ): đi đến rồi quay về tốn , rồi đi đến rồi về tốn . Tổng . |
| 5 5 -7 -6 -3 -1 1 |
16 | Đặt đồn tại . Một chuyến bắt 2 tên bên trái: đi đến rồi về tốn . Một chuyến bắt 2 tên bên phải: đi đến rồi về tốn . Tổng . |
| 1 369 0 |
0 | Đặt đồn ngay tại , tội phạm bị bắt tức thì. |
| 11 2 -375 -108 1336 1453 1598 1892 2804 3732 4291 4588 4822 |
18716 | Đặt đồn tại (trung vị), xe chở mỗi chuyến 2 tên, quy hoạch các chuyến tối ưu cho hai phía. |
Bình luận