강도 사건
시간 제한3초메모리 제한128 MB
k번 상자에 정확히 k개의 동일한 다이아몬드가 있을 때, 무게 한도 M을 넘지 않게 골라 총 가치를 최대화하는 배낭 문제를 풉니다.
문제
부쿠레슈티 시내에는 아주 큰 금고를 갖춘 아주 큰 은행이 있다. 금고 안에는 1번부터 번까지 번호가 매겨진 아주 큰 상자 개가 있다. 번 상자 안에는 아주 큰 다이아몬드가 정확히 개 들어 있으며, 그 상자에 있는 다이아몬드는 모두 무게가 , 값어치가 이다.
지금 John과 Brus가 금고 안에 있다. 그들은 모든 것을 훔치고 싶지만, 안타깝게도 무게의 합이 을 넘지 않는 만큼만 다이아몬드를 들고 나올 수 있다.
번 상자에서는 0개부터 최대 개까지 원하는 만큼 다이아몬드를 가져갈 수 있다. 무게의 합이 이하이면서 값어치의 합이 최대가 되도록 다이아몬드를 고르는 것을 도와주어라.
입력
첫째 줄에는 정수 — 테스트 케이스의 수가 주어진다. 각 테스트 케이스는 공백 하나로 구분된 두 정수 과 이 있는 줄로 시작한다. 다음 줄에는 개의 정수 가 공백 하나로 구분되어 주어진다. 그다음 줄에는 개의 정수 가 공백 하나로 구분되어 주어진다.
출력
각 테스트 케이스마다, 훔칠 수 있는 다이아몬드 값어치 합의 최댓값을 한 줄에 출력한다.