입체파 조형물

시간 제한1초메모리 제한128 MB

요약
격자 위에 쌓은 정육면체 더미의 정면도와 측면도 최대 높이가 주어질 때 두 조건을 모두 만족하는 최소 큐브 개수를 구합니다.
난이도

보통10점 중 6점

유형
그리디, 행렬, 배열
정답자
아직 제출이 없습니다

문제

이 조형물은 한 변이 1피트인 단위 정육면체들을 평평한 바닥 위에 쌓아 만든다. 바닥은 1피트 × 1피트 정사각형 격자로 나뉘어 있다. 정육면체는 격자의 한 칸 안에서 바닥에 놓이거나, 다른 정육면체 위에 위 정육면체의 아랫면이 아래 정육면체의 윗면과 정확히 맞닿도록 반듯이 올려놓아야 한다. 그 외의 방식으로는 놓을 수 없다.

바닥 격자는 ww개의 열과 dd개의 행으로 이루어지므로, 정육면체들은 w×dw \times d 격자 위에 기둥 형태로 쌓인다. 하나의 설계는 두 개의 뷰로 주어진다.

  • 정면도는 ww개의 각 열에 대해 그 열에서 기둥의 최대 높이를 알려 준다.
  • 측면도(오른쪽에서 본 모습)는 dd개의 각 행에 대해 그 행에서 기둥의 최대 높이를 알려 준다.

같은 정면도·측면도 쌍을 만드는 정육면체 배치는 여러 가지이며, 사용하는 정육면체 수도 서로 다를 수 있다. 설치 비용은 정육면체 개수에 비례하므로, 주어진 정면도와 측면도를 동시에 만족하는 데 필요한 정육면체의 최소 개수를 구해야 한다.

두 열을 맞바꾸어도 측면도는 바뀌지 않고, 두 행을 맞바꾸어도 정면도는 바뀌지 않으므로, 이런 교환은 비용을 바꾸지 않는다.

입력

입력은 여러 개의 데이터셋으로 이루어진다. 입력의 끝은 공백으로 구분된 두 개의 0이 있는 줄로 표시된다. 각 데이터셋의 형식은 다음과 같다.

w d
h1 h2 ... hw  h'1 h'2 ... h'd

첫 줄은 격자의 너비 ww와 깊이 dd를 준다. 둘째 줄은 ww개의 정수 h1,…,hwh_1, \dots, h_w(각 열의 정면도 높이) 다음에 dd개의 정수 h1′,…,hd′h'_1, \dots, h'_d(각 행의 측면도 높이)를 나열한다.

모든 데이터셋은 적어도 한 가지 정육면체 배치로 실현될 수 있다고 가정해도 된다.

출력

각 데이터셋에 대해 필요한 정육면체의 최소 개수를 한 줄에 출력한다. 그 줄에는 다른 어떤 것도 있으면 안 된다.

예제1

  1. 예제 1

    입력
    5 5
    1 2 3 4 5
    1 2 3 4 5
    5 5
    2 5 4 1 3
    4 1 5 3 2
    5 5
    1 2 3 4 5
    3 3 3 4 5
    3 3
    7 7 7
    7 7 7
    3 3
    4 4 4
    4 3 4
    4 3
    4 2 2 4
    4 2 1
    4 4
    2 8 8 8
    2 3 8 3
    10 10
    9 9 9 9 9 9 9 9 9 9
    9 9 9 9 9 9 9 9 9 9
    10 9
    20 1 20 20 20 20 20 18 20 20
    20 20 20 20 7 20 20 20 20
    0 0
    
    예상 출력
    15
    15
    21
    21
    15
    13
    32
    90
    186