Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập rutvanhochiminh2324

Rút ván

Dễ Tham lamDFS BFSDisjoint set (DSU)

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

Trò chơi rút ván thiết kế trên một vùng hình chữ nhật được bao bởi hai đoạn thẳng có độ dài là \(A\) và hai đoạn thẳng có độ dài là \(B\). Ta có thể xem hai điểm góc chéo nhau của vùng chơi có tọa độ là \((0; 0)\) và \((A; B)\), \(1 \le A, B \le 10^9\). Có \(N\) thanh dọc có độ dài \(B\), một đầu của thanh dọc thứ \(i\) được đặt tại điểm có tọa độ \((a_i; 0)\), đầu còn lại nằm trên điểm \((a_i; B)\), \(0 < a_i < A\). Có \(M\) thanh ngang có độ dài \(A\), một đầu của thanh ngang thứ \(j\) được đặt tại điểm có tọa độ \((0; b_j)\), đầu còn lại nằm trên điểm \((A; b_j)\), \(0 < b_j < B\). Các vị trí \(a_i\) đôi một khác nhau, các vị trí \(b_j\) đôi một khác nhau. Cách bố trí các thanh dọc, ngang như trên chia hình chữ nhật ban đầu thành \((N+1)(M+1)\) khu vực khép kín.

Tại những điểm giao nhau, ta cắt thanh dọc và thanh ngang để tạo ra những đoạn nhỏ hơn. Nhiệm vụ của người chơi là cần bỏ đi các đoạn sao cho tất cả khu vực trong vùng chơi thông với nhau và tổng độ dài các đoạn bỏ đi là ít nhất. Có thể hiểu rằng khi tất cả khu vực thông nhau thì trong vùng chơi từ một khu vực ta có thể di chuyển đến một khu vực bất kỳ. Các cạnh viền ngoài của hình chữ nhật không được bỏ.

Yêu cầu: Hãy viết một chương trình cho biết tổng độ dài ít nhất các đoạn cần bỏ đi để tất cả các khu vực trong vùng chơi thông nhau.

Input

Dữ liệu vào:

  • Dòng đầu chứa \(4\) số nguyên \(A\), \(B\), \(N\), \(M\).

  • \(N\) dòng tiếp theo, mỗi dòng chứa một số nguyên lần lượt là vị trí của các thanh dọc \(a_1, a_2, \ldots, a_N\).

  • \(M\) dòng tiếp theo, mỗi dòng chứa một số nguyên lần lượt là vị trí của các thanh ngang \(b_1, b_2, \ldots, b_M\).

Ràng buộc:

  • \(30\%\) số điểm của bài: \(0 \le N, M \le 3\).

  • \(60\%\) số điểm của bài: \(0 \le N, M \le 1000\).

  • \(100\%\) số điểm của bài: \(0 \le N, M \le 25\,000\).

Output

In ra một số nguyên cho biết tổng độ dài ít nhất các đoạn cần bỏ đi để tất cả các khu vực trong vùng chơi thông nhau.

Example

Input:

5 5 2 2
1
3
3
4

Output:

10

Note

Hình chữ nhật \(5 \times 5\) có hai thanh dọc tại \(x = 1\) và \(x = 3\), hai thanh ngang tại \(y = 3\) và \(y = 4\), chia thành \(9\) khu vực. Bề rộng các cột là \(1, 2, 2\) và chiều cao các hàng là \(3, 1, 1\).

Muốn \(9\) khu vực thông nhau cần bỏ đúng \(8\) đoạn nối các khu vực thành một cây. Chọn các đoạn ngắn trước: nối \(3\) ô của cột rộng \(1\) cần \(2\) đoạn dài \(1\) (chi phí \(2\)); nối thêm hàng cao \(1\) thứ nhất cần \(2\) đoạn dài \(1\) (chi phí \(2\)); nối thêm hàng cao \(1\) thứ hai cần \(2\) đoạn dài \(1\) (chi phí \(2\)); cuối cùng mỗi cột rộng \(2\) cần thêm \(1\) đoạn dài \(2\) (chi phí \(2 + 2\)). Hàng cao \(3\) không cần thêm đoạn nào. Tổng cộng \(2 + 2 + 2 + 4 = 10\).

Bình luận

Chưa có bình luận nào.