만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

고무줄 늘이기 (라지)

시간 제한30초메모리 제한512 MB

요약
각각 늘어나는 범위 [A_i, B_i]와 가격이 정해진 고무줄 N개 중에서, 합친 범위가 정확히 길이 L을 포함하도록 일부를 골라 예산 M 안에서 최소 비용을 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그리디, 정렬, 구현
정답자
아직 제출이 없습니다

문제

메리는 고무줄을 가지고 노는 것을 좋아한다. 오늘이 메리의 생일이라 선물을 사러 고무줄 가게에 왔다.

가게에는 고무줄이 NN개 있다. ii번 고무줄은 AiA_i 이상 BiB_i 이하인 아무 길이로나 늘일 수 있다. 늘일 수 있는 길이 범위가 [a,b][a, b]인 고무줄과 [c,d][c, d]인 고무줄을 이으면, 길이 범위가 [a+c,b+d][a+c, b+d]인 고무줄 하나가 된다. 이렇게 만든 고무줄도 다른 고무줄과 다시 이을 수 있다.

메리에게 길이를 정확히 LL로 늘일 수 있는 고무줄을 선물하려고 한다. 고무줄 한 개여도 되고 여러 개를 이어 붙인 것이어도 된다. 쓸 수 있는 돈은 MM달러다. 최소 얼마를 쓰면 되는가? 목표를 이룰 방법이 없으면 IMPOSSIBLE을 출력한다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 테스트 케이스가 TT개 주어진다.

각 테스트 케이스의 첫 줄에는 정수 NN, MM, LL이 주어진다. 차례대로 가게에 있는 고무줄의 개수, 쓸 수 있는 돈, 원하는 고무줄 길이다. 이어서 NN개의 줄에 고무줄 하나씩의 정보가 주어진다. 각 줄에는 정수 AiA_i, BiB_i, PiP_i가 주어진다. [Ai,Bi][A_i, B_i]는 ii번 고무줄을 늘일 수 있는 길이 범위이고, PiP_i는 ii번 고무줄의 가격이며 단위는 달러다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호다. 조건을 만족하도록 고무줄을 살 수 없으면 yy는 IMPOSSIBLE이고, 살 수 있으면 지불하는 최소 금액이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤Pi≤M1 \le P_i \le M
  • 1≤L≤100001 \le L \le 10000
  • 1≤Ai≤Bi≤100001 \le A_i \le B_i \le 10000
  • 1≤N≤10001 \le N \le 1000
  • 1≤M≤10000000001 \le M \le 1000000000

힌트

첫 번째 예제의 1번 테스트 케이스에서는 고무줄 하나만으로는 길이 6에 닿지 못한다. 가장 싼 고무줄 두 개를 이으면 범위가 [7,9][7, 9]가 되어 6을 포함하지 않으므로 이 조합도 답이 아니다. 고무줄은 길이를 정확히 LL로 늘일 수 있어야 한다. 가격이 2인 고무줄과 5인 고무줄을 사서 이으면 범위가 [4,7][4, 7]이 되어 6을 포함한다. 쓸 수 있는 돈이 8달러이므로 합계 7달러를 낼 수 있다.

2번 테스트 케이스에서는 길이 14를 만들려면 고무줄을 모두 사야 한다. 그러면 12달러가 드는데 쓸 수 있는 돈은 11달러뿐이라 IMPOSSIBLE이다.

예제3

  1. 예제 1

    입력
    2
    3 8 6
    3 5 2
    4 4 3
    1 2 5
    3 11 14
    1 3 4
    5 5 3
    2 6 5
    
    예상 출력
    Case #1: 7
    Case #2: IMPOSSIBLE
    
  2. 예제 2

    입력
    2
    2 10 8
    2 3 4
    4 5 6
    2 9 8
    2 3 4
    4 5 6
    
    예상 출력
    Case #1: 10
    Case #2: IMPOSSIBLE
    
  3. 예제 3

    입력
    3
    3 20 5
    4 4 1
    6 6 1
    9 9 1
    3 20 10
    4 4 7
    6 6 3
    9 9 2
    3 20 19
    4 4 7
    6 6 3
    9 9 2
    
    예상 출력
    Case #1: IMPOSSIBLE
    Case #2: 10
    Case #3: 12