문제1188--HowSum: small

1188: HowSum: small

시간제한 : 1.000 sec  메모리제한 : 128 MB  Special Judge

문제 설명

목표 정수 M(>=0)과 N개의 서로 다른 양의 정수가 주어집니다. 이들 정수를 원하는 만큼 합하여 목표 정수를 만들 수 있는 방법을 알고 싶습니다. 
예를 들어 목표 정수가 7이고, [5, 3, 4, 7]이 주어지면 3+4, 4+3, 7은 모두 7이므로 목표 정수를 만들 수 있습니다.    

입력 설명

첫 줄에는 테스트케이스 T(1<=T<=10)가 주어집니다. 각 테스트케이스마다 첫 줄에는 목표 정수 M(0<=M<=19)과 N(2<=N<=5)이 주어집니다. 그다음 줄에는 N개의 서로 다른 양의 정수 X(1<=X<=19)가 주어집니다.

출력 설명

N개의 정수를 원하는 만큼 합하여 목표 정수를 만들 수 있으면 그것의 조합을 구성하는 수의 개수와 조합을 출력하고, 만들 수 없으면 -1를 출력합니다. 예를 들어 목표값이 8이고, [3, 2]가 주어지면 4 2 2 2 2 또는 3 3 3 2 등 답은 여러 가지가 존재할 수 있습니다. 여러 답이 있을 때 그 중 하나만 출력하면 됩니다.

입력 예시 Copy

3
7 4
5 3 4 7
7 2
2 4
0 2
2 4

출력 예시 Copy

2 3 4
-1
0

출처/분류