고무줄 늘이기 (Small)
시간 제한5초메모리 제한512 MB
N이 10 이하이므로, 모든 부분집합을 돌면서 구간 합이 L을 포함하고 가격 합이 M 이하인 가장 싼 조합을 찾는다.
문제
메리는 고무줄을 가지고 노는 것을 좋아한다. 오늘은 메리의 생일이라 선물을 사려고 고무줄 가게에 갔다.
가게에는 고무줄 개가 있다. 번 고무줄은 이상 이하의 길이로 늘일 수 있다. 길이 범위가 인 고무줄과 인 고무줄을 이으면 길이 범위가 인 고무줄 하나가 된다. 이렇게 만든 고무줄도 다른 고무줄과 다시 이을 수 있다.
메리에게 길이를 정확히 로 늘일 수 있는 고무줄을 선물하려고 한다. 고무줄 하나여도 되고, 여러 개를 이어 만든 것이어도 된다. 가진 돈은 달러다. 최소 얼마를 쓰면 되는지 구하여라. 목표를 이룰 수 없으면 IMPOSSIBLE을 출력한다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. 이어서 테스트 케이스 개가 주어진다.
각 테스트 케이스의 첫째 줄에는 정수 세 개 , , 이 주어진다. 은 가게에 있는 고무줄의 개수, 은 가진 돈, 은 원하는 길이다. 다음 개 줄에는 고무줄 하나를 나타내는 정수 세 개 , , 가 주어진다. 는 번 고무줄을 늘일 수 있는 길이 범위이고, 양 끝값을 포함한다. 는 번 고무줄의 가격이며 단위는 달러다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호다. 는 조건을 만족하도록 고무줄을 살 수 없으면 IMPOSSIBLE, 살 수 있으면 지불해야 하는 최소 금액이다.
제한
힌트
예제의 첫 번째 테스트 케이스에서는 고무줄 하나만으로 길이 6을 만들 수 없다. 가격이 가장 싼 고무줄 두 개를 이으면 길이 범위가 가 되어 6이 들어가지 않는다. 고무줄은 길이를 정확히 로 늘일 수 있어야 한다. 가격이 2인 고무줄과 5인 고무줄을 이으면 범위가 이 되어 6을 만들 수 있고, 이때 드는 7달러는 가진 돈 8달러 안에 들어간다.
두 번째 테스트 케이스에서 길이 14를 만들려면 고무줄 세 개를 모두 사야 하는데, 그 값은 12달러다. 가진 돈은 11달러뿐이므로 IMPOSSIBLE이다.