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

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

보석 도둑

시간 제한10초메모리 제한512 MB

요약
용량 1부터 k까지 각 배낭마다 n개의 보석 중 크기 합이 용량 이하가 되도록 골랐을 때 얻는 최대 가치를 구한다.
난이도

어려움10점 중 8점

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

문제

큰 박물관이 세계 각지의 보석을 모은 특별전을 열었다. 도둑 에드워드 테레난도는 이 전시장에서 자기 인생 최대의 도둑질을 계획하고 있다.

에드워드는 훔친 보석의 가치 합을 최대로 만들고 싶으므로 어떤 보석을 집을지 신중하게 골라야 한다.

에드워드에게는 크기가 1,2,3,…,k1, 2, 3, \dots, k인 배낭이 하나씩 있다. 크기가 ss인 배낭에는 크기의 합이 ss 이하인 보석을 담을 수 있다. 배낭 크기마다 담을 수 있는 보석 가치 합의 최댓값을 구하라.

한 배낭에 같은 보석을 두 번 담을 수는 없고, 배낭마다 서로 독립인 문제로 푼다.

입력

첫째 줄에 보석의 개수 nn과 배낭의 최대 크기 kk가 공백을 사이에 두고 주어진다 (1≤n≤1,000,0001 \le n \le 1{,}000{,}000, 1≤k≤100,0001 \le k \le 100{,}000).

다음 nn개의 줄에는 보석 하나의 정보가 한 줄씩 주어진다. 각 줄에는 보석의 크기 ss와 가치 vv가 공백을 사이에 두고 주어진다 (1≤s≤3001 \le s \le 300, 1≤v≤1091 \le v \le 10^9).

출력

한 줄에 정수 kk개를 공백 하나로 구분해 출력한다. ii번째 정수는 크기가 ii인 배낭에 담을 수 있는 보석 가치 합의 최댓값이다.

예제3

  1. 예제 1

    입력
    4 9
    2 8
    1 1
    3 4
    5 100
    
    예상 출력
    1 8 9 9 100 101 108 109 109
    
  2. 예제 2

    입력
    5 7
    2 2
    3 8
    2 7
    2 4
    3 8
    
    예상 출력
    0 7 8 11 15 16 19
    
  3. 예제 3

    입력
    2 6
    300 1
    300 2
    
    예상 출력
    0 0 0 0 0 0