컴퓨터 조립
시간 제한1초메모리 제한128 MB
예산 안에서 각 부품 종류별로 하나씩 골라 선택된 부품들의 최소 성능을 최대화하는 값을 구하는 문제입니다.
문제
상근이는 새 컴퓨터를 직접 조립하기로 했다. 컴퓨터를 완성하려면 입력에 등장하는 각 종류(type)의 부품을 종류마다 정확히 하나씩 구매해야 한다.
컴퓨터 전체의 성능은 사용한 부품 중 성능이 가장 낮은 부품의 성능과 같다. 상근이는 주어진 예산을 초과하지 않으면서, 이 "가장 낮은 부품의 성능"을 최대로 만들고 싶다.
각 부품의 종류, 이름, 가격, 성능이 주어질 때, 예산 안에서 조립할 수 있는 컴퓨터의 최대 성능을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스는 100개를 넘지 않는다.
각 테스트 케이스의 첫째 줄에는 부품의 개수 과 예산 가 주어진다. (, )
다음 개의 줄에는 부품 정보가 type name price quality 형식으로 주어진다. type은 부품의 종류, name은 부품의 이름, price는 가격(), quality는 성능()이다.
부품의 이름은 서로 겹치지 않으며, 성능은 값이 클수록 좋다. 모든 문자열은 영문자, 숫자, 밑줄(_)로만 이루어지고 길이는 최대 20글자이다.
컴퓨터를 조립하려면 입력에 등장하는 모든 종류에 대해 부품을 종류마다 하나씩 골라야 한다. 입력은 항상 주어진 예산으로 컴퓨터를 조립할 수 있는 경우만 주어진다.
출력
각 테스트 케이스마다, 예산으로 조립할 수 있는 컴퓨터의 최대 성능을 한 줄에 하나씩 출력한다.