#265
Unrated
울타리 제거
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

우솔이는 충남대학교의 넓은 부지가 너무 탁 트여 있어 관리가 어렵다는 사실을 깨달았다. 그는 부지를 더 작은 영역으로 나누어 관리하기 위해 수직(남북) 방향과 수평(동서) 방향으로 울타리를 설치했다.

전체 부지는 (0,0)(0,0)(A,B)(A,B)를 꼭짓점으로 하는 직사각형 모양이다. 우솔이는 서로 다른 위치 a1,,ana_1, \dots, a_n (0<ai<A0 < a_i < A)에 nn개의 수직 울타리를 설치했다. 각 수직 울타리는 (ai,0)(a_i, 0)에서 (ai,B)(a_i, B)까지 이어진다. 또한, 서로 다른 위치 b1,,bmb_1, \dots, b_m (0<bi<B0 < b_i < B)에 mm개의 수평 울타리를 설치했다. 각 수평 울타리는 (0,bi)(0, b_i)에서 (A,bi)(A, b_i)까지 이어진다. 모든 수직 울타리는 모든 수평 울타리와 교차하며, 결과적으로 전체 부지는 총 (n+1)(m+1)(n+1)(m+1)개의 작은 영역으로 나뉜다.

불행히도 우솔이는 울타리에 문을 만드는 것을 완전히 잊어버렸다! 이대로라면 각 영역에 갇힌 사람들이 다른 영역으로 이동하는 것이 불가능하다. 우솔이는 이 상황을 해결하기 위해 울타리의 일부 조각을 제거하여 인접한 영역 사이를 이동할 수 있게 만들려고 한다. 그는 특정 인접한 두 영역을 선택하고, 그 사이를 가로막는 울타리 조각 전체를 제거할 계획이다. 모든 작업이 끝난 후에는 모든 영역 사이를 자유롭게 이동할 수 있어야 한다.

예를 들어, 울타리가 다음과 같이 설치되어 있을 때:

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

일부 조각을 제거하여 다음과 같이 만들 수 있다:

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

우솔이가 모든 영역을 연결하기 위해 제거해야 하는 울타리의 최소 총 길이를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 네 정수 A,B,n,mA, B, n, m이 공백으로 구분되어 주어진다. (1A,B10000000001 \le A, B \le 1\,000\,000\,000; 0n,m250000 \le n, m \le 25\,000)

이어서 nn개의 줄에는 수직 울타리의 위치 a1,,ana_1, \dots, a_n이 한 줄에 하나씩 주어진다.

그 다음 mm개의 줄에는 수평 울타리의 위치 b1,,bmb_1, \dots, b_m이 한 줄에 하나씩 주어진다.

출력

우솔이가 제거해야 하는 울타리의 최소 총 길이를 출력한다. 결과값이 매우 클 수 있으므로, C/C++의 long long과 같은 64비트 정수 자료형을 사용해야 할 수도 있다.

예제 입력 1

15 15 5 2
2
5
10
6
4
11
3

예제 출력 1

44
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.