만드는 중입니다

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

급유 계획

면접 대비

시간 제한1초메모리 제한256 MB

요약
정렬된 주유소 위치에 가장 멀리 닿는 정차 규칙을 적용해 최소 급유 지점을 출력하고 닿지 못하면 표시합니다.
난이도

쉬움10점 중 3점

유형
그리디, 시뮬레이션
정답자
아직 제출이 없습니다

문제

존은 인더스 하이웨이를 따라 라왈핀디에서 카라치까지 자동차로 이동한다. 연료를 가득 채운 탱크로 KK킬로미터를 달릴 수 있고, 출발할 때 탱크는 가득 차 있다. 경로에는 주유소가 SS개 있으며 각 주유소의 위치는 라왈핀디에서 떨어진 거리로 주어진다.

존이 카라치에 도착하도록 급유할 주유소를 정하라. 멈추는 횟수는 최소여야 한다.

멈추는 횟수가 최소인 계획이 여럿 있을 수 있으므로 다음 규칙으로 하나를 정한다. 현재 위치에서 남은 연료로 도달할 수 있는 주유소 중 가장 먼 곳까지 이동해 탱크를 가득 채우고, 카라치까지 남은 거리가 KK 이하가 될 때까지 이를 반복한다. 이 규칙은 항상 멈추는 횟수가 최소인 계획을 만든다.

입력

첫째 줄에 테스트 케이스의 수 NN (1≤N≤1001 \le N \le 100)이 주어진다.

다음 NN개 줄에는 각각 라왈핀디에서 카라치까지의 거리 DD (1≤D≤100001 \le D \le 10000), 가득 찬 탱크로 달릴 수 있는 거리 KK (1≤K≤100001 \le K \le 10000), 주유소의 수 SS (1≤S≤1001 \le S \le 100), 그리고 주유소 SS개의 위치가 순서대로 주어진다. 위치는 라왈핀디에서 떨어진 거리이며 1≤d1<d2<⋯<dS≤D1 \le d_1 < d_2 < \dots < d_S \le D를 만족한다. 모든 거리는 킬로미터 단위의 정수이다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 줄은 Case #n:으로 시작하고 nn은 테스트 케이스 번호이다.

존이 카라치에 도착할 수 있으면 콜론 뒤에 급유하는 주유소의 위치를 이동 순서대로 공백으로 구분해 출력한다. 급유가 한 번도 필요하지 않으면 콜론 뒤에는 아무것도 출력하지 않는다.

존이 카라치에 도착할 수 없으면 콜론 뒤에 out of petrol을 출력한다.

예제2

  1. 예제 1

    입력
    3
    1397 450 10 250 433 449 700 800 950 1000 1200 1350 1395
    1380 500 5 100 600 900 1100 1200
    1000 100 3 300 600 900
    
    예상 출력
    Case #1: 449 800 1200
    Case #2: 100 600 1100
    Case #3: out of petrol
    
  2. 예제 2

    입력
    3
    100 100 1 50
    1 1 1 1
    10000 10000 1 5000
    
    예상 출력
    Case #1:
    Case #2:
    Case #3: