파일 업로드

파티션이 있는 곳 2

profile
실행 시간 제한메모리 제한
2 초512 MB
📃 해결할 문제

아티스트 민수는 큰 갤러리를 운영하고 있습니다. 이 갤러리에서는 다양한 전시를 준비하기 위해 큰 화면을 여러 개의 작은 구역으로 나누려고 합니다. 그는 수직 (남-북) 및 수평 (동-서)으로 파티션을 설치하여 전시 공간을 나눕니다.

대형 갤러리는 꼭지점이 (0,0)(0,0)(A,B)(A,B)인 직사각형입니다. 민수는 nn개의 수직 파티션 (0n25,0000 \leq n \leq 25,000)a1ana_1 \ldots a_n (0<ai<A0 \lt a_i \lt A) 위치에 설치합니다. 각 파티션은 (ai,0)(a_i, 0)에서 (ai,B)(a_i, B)까지 뻗어있습니다. 그는 또한 mm개의 수평 파티션 (0m25,0000 \leq m \leq 25,000)을 위치 b1bmb_1 \ldots b_m (0<bi<B0 \lt b_i \lt B)에 설치합니다. 각 파티션은 (0,bi)(0, b_i)에서 (A,bi)(A, b_i)까지 뻗어있습니다. 각 수직 파티션은 수평 파티션을 통과하여 대형 갤러리를 총 (n+1)(m+1)(n+1)(m+1) 구역으로 나눕니다.

불행하게도, 민수는 전시 작품을 이동시킬 때 문제가 될 수 있는 파티션의 입구를 설치하는 것을 완전히 잊었습니다! 그는 이 문제를 해결하기 위해 일부 파티션의 부분을 제거하여 인접한 구역 간의 이동을 가능하게 하려고 합니다. 인접한 두 구역 사이의 전체 파티션 길이를 제거하여, 작품들이 큰 갤러리의 어디든지 이동할 수 있게 하고 싶습니다.

예를 들어, 민수가 이런 식으로 파티션을 설치했다면

+---+--+
|   |  |
+---+--+
|   |  |  
|   |  |
+---+--+

이렇게 개방할 수 있습니다:

+---+--+
|      |
+---+  +  
|      |
|      |
+---+--+

민수가 그의 목표를 달성하기 위해 제거해야 할 파티션의 최소 길이를 계산해주세요.

💻 입력

첫 번째 입력 줄에는 AA, BB, nn, mm (1A,B1,000,000,0001 \leq A, B \leq 1,000,000,000)이 포함됩니다. 다음 nn 줄에는 a1ana_1 \ldots a_n이 포함되고, 그 다음 mm 줄에는 b1bmb_1 \ldots b_m이 포함됩니다.
 

🖨️ 출력

민수가 제거해야 할 파티션의 최소 길이를 출력하세요. 
주의: 이 값은 표준 32비트 정수에 맞지 않을 수 있으므로 64비트 정수 유형 (예: C/C++의 "long long")을 사용해야 할 수도 있습니다.
 


💻 예제 입력 1
15 15 5 2
2
5
10
6
4
11
3
🖨️ 예제 출력 1
44

출처: USACO 2016 February Contest, Platinum Problem 2. Fenced In