100 이하의 널빤지 중에서 합이 정확히 L이 되는 최소 개수를 구하고 만들 수 없으면 IMPOSSIBLE을 출력합니다.
보통7동적 계획법정수론그리디아직 제출이 없습니다시간 제한5초메모리 제한512 MB아주 긴 울타리를 세우려고 한다. 세울 자리는 이미 골라 두었고, 이제 재료만 모으면 된다.
동네 목재상에서는 여러 길이의 판자를 원하는 만큼 살 수 있다. 자재를 남기지 않으려면 사 온 판자의 길이 합이 울타리 길이와 정확히 같아야 한다.
울타리의 길이와 살 수 있는 판자 길이가 주어질 때, 길이 합을 정확히 맞추려면 판자를 최소 몇 개 사야 하는지 구하여라.
울타리가 아주 길다는 점에 주의하여라.
첫 줄에 테스트 케이스의 개수 T가 주어진다. 다음 줄부터 T개의 테스트 케이스가 이어진다.
각 테스트 케이스는 두 줄이다. 첫 줄에는 울타리의 전체 길이 L과 살 수 있는 판자 길이의 가짓수 N이 공백으로 구분되어 주어진다. 둘째 줄에는 살 수 있는 판자 길이 B1,B2,…,BN이 공백으로 구분되어 주어진다.
각 테스트 케이스마다 "Case #x: M" 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, M은 다음과 같다.
예제의 첫 번째 케이스에서는 길이 23인 판자 2개, 길이 51인 판자 5개, 길이 100인 판자 99999997개를 쓰는 것이 최선이다. 길이 100인 판자만 100000001개 사면 합이 L보다 커지는데, 그런 방법은 허용되지 않는다.
예제의 두 번째 케이스에서는 짝수 길이만 만들 수 있다.