트럭 운전사의 여정 계획

면접 대비

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

요약
고정된 모텔과 추가 모텔의 위치가 주어질 때, 하루 이동 거리가 A 이상 B 이하가 되는 숙박 순서의 가짓수를 센다.
난이도

보통10점 중 4점

유형
동적 계획법, 배열, 정렬
정답자
아직 제출이 없습니다

문제

한 트럭 운전사가 밴쿠버에서 세인트존스까지 70007000 km 거리의 대륙 횡단 고속도로를 달리며, 매일 밤 모텔에서 묵으려고 한다.

다음 모텔들은 항상 이용할 수 있으며, 밴쿠버 출발점으로부터의 거리(km)로 나타낸다.

0, 990, 1010, 1970, 2030, 2940, 3060, 3930, 4060, 4970, 5030, 5990, 6010, 7000

여행이 시작되기 직전에 모텔이 더 추가될 수도 있다.

운전사가 여정을 완료하려면 다음 조건을 모두 만족해야 한다.

  1. 하루에 최소 AA km 이상 이동해야 한다(회사 규정).
  2. 하루에 최대 BB km 이하로 이동해야 한다(법적 제한).
  3. 매일 밤은 이용 가능한 모텔(위 고정 목록 또는 입력으로 주어지는 추가 위치)에서 묵어야 한다.

여정은 00 km 지점(밴쿠버)에서 시작해 70007000 km 지점(세인트존스)에서 끝난다. 매일의 이동 거리가 모두 AA 이상 BB 이하가 되도록 밤마다 묵을 모텔의 순서를 고르는 서로 다른 방법의 수를 구하여라.

예를 들어 추가 모텔이 없을 때, A=1A = 1, B=500B = 500이면 여정이 불가능하므로 답은 00이다. A=970A = 970, B=1030B = 1030이면 방법이 정확히 하나이고, A=970A = 970, B=1040B = 1040이면 방법이 네 가지이다. A=970A = 970, B=1030B = 1030이고 49604960 km 지점에 모텔 하나를 추가하면 방법은 두 가지이다.

입력

  • 첫째 줄에 하루 최소 이동 거리 AA가 주어진다.
  • 둘째 줄에 하루 최대 이동 거리 BB가 주어진다. 1≤A≤B≤70001 \le A \le B \le 7000이며 둘 다 정수이다.
  • 셋째 줄에 추가 모텔의 개수 NN (0≤N≤200 \le N \le 20)이 주어진다.
  • 이어지는 NN개의 줄에 각각 추가 모텔의 위치 mm (0<m<70000 < m < 7000)이 하나씩 주어진다.

같은 거리에 위치한 모텔은 없다.

출력

주어진 조건에서 운전사가 묵을 모텔을 선택해 여정을 완료하는 서로 다른 방법의 수를 정수 하나로 출력한다.

예제4

  1. 예제 1

    입력
    1
    500
    0
    
    예상 출력
    0
    
  2. 예제 2

    입력
    970
    1030
    0
    
    예상 출력
    1
    
  3. 예제 3

    입력
    970
    1040
    0
    
    예상 출력
    4
    
  4. 예제 4

    입력
    970
    1030
    1
    4960
    
    예상 출력
    2