수송기

면접 대비

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

요약
물건이 최대 20개일 때, 무게 합이 W 이하이면서 가치 합이 최대가 되는 부분집합을 고른다.
난이도

보통10점 중 4점

유형
완전 탐색, 백트래킹, 동적 계획법
정답자
아직 제출이 없습니다

문제

먼 곳으로 물건을 배달해야 하는 수송기가 있습니다. 모든 물건을 싣고 싶지만, 수송기의 적재 용량(무게 한도) WW를 초과할 수는 없습니다. nn개의 물건이 있고 각 물건의 무게는 w1,w2,…,wnw_1, w_2, \dots, w_n, 가치는 v1,v2,…,vnv_1, v_2, \dots, v_n으로 주어집니다. 용량 WW를 넘기지 않으면서 실을 수 있는 물건들의 부분집합 중에서 가치의 합이 최대가 되는 값을 구하세요.

입력

첫 번째 줄에 문제 세트의 개수를 나타내는 양의 정수가 주어집니다. 각 문제 세트의 첫 번째 줄에는 두 양의 정수 nn과 WW가 주어지며, nn은 물건의 개수, WW는 수송기의 용량입니다. 이어지는 nn개의 줄에는 각각 두 정수 ww와 vv가 주어지며, ww는 물건의 무게, vv는 물건의 가치입니다. 모든 무게와 가치는 양의 정수이고, 한 문제 세트의 물건 개수는 20개를 넘지 않습니다.

출력

각 문제 세트마다, 용량 WW를 초과하지 않고 수송기가 실을 수 있는 가장 가치 있는 부분집합의 가치 합을 한 줄에 하나씩 출력합니다.

예제3

  1. 예제 1

    입력
    2
    3 5
    2 3
    2 2
    3 3
    4 10
    7 42
    3 12
    4 40
    5 25
    
    예상 출력
    6
    65
    
  2. 예제 2

    입력
    1
    1 10
    5 100
    
    예상 출력
    100
    
  3. 예제 3

    입력
    1
    1 3
    5 100
    
    예상 출력
    0