문제 E: 류주의 매점투어 III

문제 E: 류주의 매점투어 III

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB
제출: 103  통과: 41
[제출] [채점기록] [묻고답하기] [만든사람:]

문제 설명

류주는 요새 끼니를 매점에서 때우는 것을 즐긴다. 그러나 문제가 있으니 매점에 갈 때마다 아무 생각 없이 계산하다보면 주머니엔 어느새 잔돈이 가득하다는 것이다.

류주는 잔돈을 가지고 다니는 것을 싫어하므로 되도록 거스름돈을 받지 않고 물건을 사고싶다.

류주가 사려는 물건의 가격과 류주가 가지고 있는 돈의 권종이 주어질 때 거스름돈을 받지 않고 물건을 살 수 있는지 없는지를 구하는 프로그램을 작성하시오
 

입력 설명

첫 줄에 Test Case T가 입력 된다.(1 <= T <= 20)

Test Case의 첫 줄에는 류주가 사려는 물건의 가격 n과 류주가 가지고 있는 돈의 권종의 가지수 m이 빈 칸을 구분으로 입력된다. 동일한 권종이 입력 될 수 있으며, 사용할 수 있는 금액별 권종의 갯수는 제한이 없다.

그 다음 줄에는 m개 만큼의  권종의 액면 급액  Xi가 빈 칸을 구분으로 한 줄에 입력된다.

(1 n 100,000) (1 m 20) (1 Xi 50,000)
 

출력 설명

Test Case에 대해 한 줄에 거스름돈을 받지 않고 물건을 살 수 있으면 지불할 총 권종의 최소 갯수를 출력하고, 아니면 “NO”를 출력한다.



입력 예시 Copy

3
20 4
1 5 10 16
4000 5
500 500 800 2500 5000
1000 4
7 999 998 997

출력 예시 Copy

2
4
NO

도움

동적 계획법 활용 문제