만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

말 수레

면접 대비

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

요약
무게와 가치가 있는 N개의 보물과 무게 제한이 있는 M개의 수레가 주어집니다. 수레마다 보물을 하나씩 실을 때 가져갈 수 있는 가치의 최댓값을 구합니다.
난이도

보통10점 중 5점

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

문제

동굴에서 보물 NN개(1번부터 NN번까지)를 발견했다. 보물 ii의 무게는 WiW_i, 가치는 ViV_i이다.

보물을 옮기려고 말 수레 MM대(1번부터 MM번까지)도 준비했다. 각 수레에는 보물을 한 개만 실을 수 있으며, 수레 jj에는 무게가 SjS_j 이하인 보물만 실을 수 있다.

말 수레를 사용해 가져갈 수 있는 보물 가치 합의 최댓값을 구하라.

입력

첫째 줄에 정수 NN과 MM이 주어진다 (1≤N,M≤100 0001 \le N, M \le 100\,000).

다음 NN개의 줄에는 각각 정수 WiW_i와 ViV_i가 주어진다 (1≤Wi,Vi≤1061 \le W_i, V_i \le 10^6).

다음 줄에는 MM개의 정수 SjS_j가 주어진다 (1≤Sj≤1061 \le S_j \le 10^6).

출력

말 수레를 사용해 가져갈 수 있는 보물 가치 합의 최댓값을 한 줄에 출력한다.

예제4

  1. 예제 1

    입력
    8 5
    2 10
    9 4
    6 10
    2 20
    3 15
    3 9
    4 8
    4 10
    1 5 3 3 10
    
    예상 출력
    55
    
  2. 예제 2

    입력
    5 3
    1 4
    1 2
    1 7
    1 1
    1 9
    1 1 1
    
    예상 출력
    20
    
  3. 예제 3

    입력
    2 5
    9 100
    4 100
    1 2 3 1 3
    
    예상 출력
    0
    
  4. 예제 4

    입력
    7 4
    1 10
    1 20
    2 50
    3 5
    4 8
    10 100
    12 40
    2 2 5 7
    
    예상 출력
    88