아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소를 위한 우산

면접 대비

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

요약
수직선 위 소들의 위치와 너비별 우산 가격이 주어질 때, 겹침을 허용하면서 모든 소를 덮는 최소 비용을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 정렬, 누적 합, 그리디
정답자
아직 제출이 없습니다

문제

비가 오는 날입니다. 농부 John의 소 NN마리(1≤N≤5,0001 \le N \le 5{,}000)는 1…N1 \ldots N로 번호가 매겨져 있으며, 비를 맞는 것을 좋아하지 않습니다. 소들은 수직선 위에 늘어선 지붕 없는 축사에 서 있습니다. 축사는 좌표 11부터 MM까지(1≤M≤100,0001 \le M \le 100{,}000)의 정수 좌표를 차지합니다. 소 ii는 좌표 XiX_i(1≤Xi≤M1 \le X_i \le M)에 서 있으며, 두 소가 같은 축사를 공유하지 않습니다.

소들이 비에 젖지 않도록 농부 John은 우산을 사려고 합니다. 좌표 XiX_i부터 XjX_j까지(Xi≤XjX_i \le X_j)를 덮는 우산의 너비는 Xj−Xi+1X_j - X_i + 1입니다. 너비가 WW인 우산의 가격은 CWC_W(1≤CW≤1,000,0001 \le C_W \le 1{,}000{,}000)입니다. 더 넓은 우산이 반드시 더 비싼 것은 아닙니다.

모든 소를 비로부터 보호하는 우산 집합의 최소 총비용을 구하세요. 최적해에서 우산들은 서로 겹칠 수 있습니다.

입력

  • 첫째 줄에 두 정수 NN과 MM이 공백으로 구분되어 주어집니다.
  • 다음 NN개의 줄에는 각각 정수 XiX_i가 하나씩 주어집니다.
  • 그다음 MM개의 줄에는 각각 정수가 하나씩 주어지며, 그중 jj번째 줄은 너비가 jj인 우산의 가격 CjC_j입니다.

출력

  • 모든 소가 비에 젖지 않도록 우산을 사는 데 필요한 최소 비용을 정수 하나로 출력합니다.

힌트

축사는 1212개가 있고, 소는 11, 22, 44, 88, 1111, 1212번 축사에 있습니다. 한 축사를 덮는 우산의 가격은 22, 두 축사를 덮는 우산의 가격은 33, 이런 식으로 이어집니다.

너비 44짜리 우산 하나, 너비 11짜리 우산 하나, 너비 22짜리 우산 하나를 사면 모든 소를 총 4+2+3=94 + 2 + 3 = 9의 비용으로 덮을 수 있습니다:

UUUUUUUUUU           U        UUUU
C  C     C           C        C  C
|--|--|--|--|--|--|--|--|--|--|--|
1  2  3  4  5  6  7  8  9  10 11 12

여기서 C는 소를, U는 우산의 일부를 나타냅니다.

예제1

  1. 예제 1

    입력
    6 12
    1
    2
    11
    8
    4
    12
    2
    3
    4
    4
    8
    9
    15
    16
    17
    18
    19
    19
    
    예상 출력
    9