감자 자루

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

요약
감자 10개의 무게와 가방 용량 C가 주어질 때 일부 감자를 선택해 무게 합이 C가 되는지 판별하여 YES 또는 NO를 출력합니다.
난이도

쉬움10점 중 3점

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

문제

감자 자루는 무게 용량(파운드 단위)이 각각 다르다. 감자도 무게가 각각 다르다. 무게가 서로 다를 수도 있는 감자 여러 개가 주어졌을 때, 그중 일부 또는 전부를 사용해 주어진 용량의 감자 자루를 정확히 채울 수 있는지 판별하라.

입력

입력의 첫 줄에는 이어지는 데이터 세트의 수를 나타내는 십진 정수 PP가 주어진다. (1≤P≤1001 \le P \le 100) 각 데이터 세트는 서로 독립적으로, 같은 방식으로 처리한다.

각 데이터 세트는 공백으로 구분된 양의 정수 12개를 포함하는 한 줄로 이루어진다. 데이터 세트 번호 KK, 파운드 단위의 감자 자루 용량 CC, (10≤C≤3010 \le C \le 30) 그리고 파운드 단위의 감자 10개 무게가 순서대로 주어진다. 감자 하나의 무게는 3파운드를 넘지 않는다.

출력

각 데이터 세트마다 출력은 한 줄이다.

출력 줄은 데이터 세트 번호 KK, 공백 하나, 그리고 감자 자루를 용량 CC파운드에 정확히 채울 수 있으면 YES, 정확히 채울 수 없으면 NO로 이루어진다.

예제1

  1. 예제 1

    입력
    2
    1 20 3 2 1 3 3 2 3 2 1 1
    2 25 3 3 3 3 3 3 3 3 3 3
    
    예상 출력
    1 YES
    2 NO