Hàng Rào Chia Ô
Cho một mảnh đất hình chữ nhật có kích thước . Trên mảnh đất này có hàng rào dọc (song song với cạnh chiều cao) và hàng rào ngang (song song với cạnh chiều rộng), chia mảnh đất thành ô hình chữ nhật.
Hàng rào dọc thứ nằm tại vị trí () và kéo dài toàn bộ chiều cao . Hàng rào ngang thứ nằm tại vị trí () và kéo dài toàn bộ chiều rộng .
Bạn muốn dỡ bỏ một số đoạn hàng rào sao cho tất cả các ô đều thông với nhau (từ bất kỳ ô nào có thể di chuyển sang bất kỳ ô nào khác). Mỗi hàng rào dọc có độ dài , mỗi hàng rào ngang có độ dài , nhưng khi dỡ bỏ, bạn chỉ cần dỡ một đoạn trên hàng rào đó để nối hai ô liền kề (đoạn dỡ có độ dài bằng kích thước của ô theo chiều vuông góc).
Cụ thể, để nối hai ô liền kề theo chiều ngang (cùng hàng, ngăn cách bởi một hàng rào dọc), chi phí bằng chiều cao của ô đó (khoảng cách giữa hai hàng rào ngang liền kề). Để nối hai ô liền kề theo chiều dọc (cùng cột, ngăn cách bởi một hàng rào ngang), chi phí bằng chiều rộng của ô đó (khoảng cách giữa hai hàng rào dọc liền kề).
Hãy tìm tổng độ dài hàng rào nhỏ nhất cần dỡ bỏ để tất cả các ô thông nhau.
Dữ liệu vào
- Dòng đầu: bốn số nguyên , , , .
- Dòng thứ hai: số nguyên — vị trí các hàng rào dọc.
- Dòng thứ ba: số nguyên — vị trí các hàng rào ngang.
Dữ liệu ra
In ra một số nguyên duy nhất — tổng độ dài hàng rào nhỏ nhất cần dỡ bỏ.
Ràng buộc
- (trong một số test, )
- Các vị trí hàng rào đôi một phân biệt và nằm trong khoảng hợp lệ.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 15 15 5 2 2 5 10 6 4 11 3 |
44 | Xem giải thích bên dưới. |
Giải thích ví dụ 1:
Mảnh đất được chia bởi 5 hàng rào dọc tại vị trí và 2 hàng rào ngang tại vị trí .
Các khoảng cách giữa các hàng rào dọc (sau khi sắp xếp: ) là: .
Các khoảng cách giữa các hàng rào ngang (sau khi sắp xếp: ) là: .
Cần dỡ bỏ tổng cộng đơn vị hàng rào để nối thông toàn bộ ô.
Ghi chú
Bài toán tương đương với tìm cây khung nhỏ nhất (MST) trên đồ thị lưới đỉnh, trong đó trọng số cạnh giữa hai ô liền kề là kích thước của ô theo chiều vuông góc với hàng rào ngăn cách chúng.
Bình luận