부분합
시간 제한1초메모리 제한128 MB
최대 20개의 봉지 크기와 목표 n이 주어질 때, 각 봉지를 최대 한 번씩 골라 합이 n 이상이면서 최소가 되는 총량을 구한다.
문제
마이아는 정확히 마이크로리터의 우유를 사고 싶습니다. 하지만 동네 가게에는 그 크기의 봉지가 없어서, 여러 봉지를 사서 합쳐야 합니다. 정확히 마이크로리터를 맞추는 것이 불가능할 수도 있는데, 그럴 때 마이아는 조금 더 사는 것은 괜찮지만 남는 양을 최대한 줄이고 싶어 합니다.
가게는 가지 크기의 봉지를 팝니다. 마이아는 같은 크기의 봉지를 두 개 사는 것을 싫어해서, 각 봉지는 최대 한 번만 고를 수 있습니다. 파는 봉지 중 일부를 골라 마이아가 적어도 마이크로리터를 사되, 사게 되는 총량을 가능한 한 작게 만드세요.
입력
첫 번째 줄에 두 정수 과 이 주어집니다 (, ). 각각 마이아가 원하는 우유의 마이크로리터 수와 가게가 파는 봉지 크기의 개수입니다.
이어지는 개의 줄에는 각각 정수 가 하나씩 주어집니다 (). 가게가 파는 봉지 하나의 크기(마이크로리터)입니다.
출력
각 봉지를 최대 한 번만 사용하여 마이아가 적어도 마이크로리터를 갖게 되는 데 필요한 최소 총 마이크로리터 수를 정수 하나로 출력하세요. 적어도 마이크로리터를 만들 수 없다면 대신 IMPOSSIBLE을 출력하세요.