아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

등산 게임

시간 제한2초메모리 제한1024 MB

요약
에너지 E로 높이 0에서 출발해 정해진 순서의 돌 N개를 모두 모으고 다시 높이 0으로 돌아오는 최소 동작 횟수를 구합니다. 에너지는 높이 0과 H에서 회복됩니다.
난이도

보통10점 중 6점

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

문제

돌은 캐릭터를 조작하여 등산을 하며 돌을 수집하는 게임을 하고 있다.

캐릭터한테는 에너지가 있으며, 최대치는 EE이다. 초기에 캐릭터는 높이 0에 있으며, 에너지를 EE만큼 가지고 있다.

캐릭터를 조작하는 동작은 두 가지이다. 한 번에 두 개 이상의 동작을 사용하는 것은 불가능하다.

  • 캐릭터가 산 꼭대기인 높이 HH에 있지 않으며 캐릭터의 에너지가 1 이상일 경우, 위 방향키를 눌러 높이 1만큼 산을 오를 수 있다. 이 동작을 할 경우 캐릭터는 에너지를 1 잃는다.
  • 캐릭터가 지표면인 높이 0에 있지 않을 경우, 아래 방향키를 눌러 높이 1만큼 산에서 미끄러져 내려올 수 있다. 이 동작은 에너지를 소모하지 않는다.

지표면과 산 꼭대기에는 에너지를 회복할 수 있는 쉼터가 있다. 만약 캐릭터가 쉼터에 있을 경우, 에너지가 자동으로 최대로 채워진다.

이 게임에는 수집 요소인 돌이 NN개 있는데, 돌은 반드시 순서대로 수집해야 하며, ii번째로 수집해야 하는 돌의 위치는 P_iP\_i이다. ii번째 돌은 (i−1)(i-1)번째까지의 돌을 모두 수집한 이후 P_iP\_i의 높이에 도달할 경우 자동으로 얻어진다. 특히, 첫 번째 돌은 P_1P\_1의 높이에 있는 경우 자동으로 얻어진다.

초기 상태에서 산을 올라 돌을 모두 수집하고 다시 높이 0까지 돌아오는 데 걸리는 최소 동작 횟수를 구하자.

입력

첫 번째 줄에 세 자연수 EE, HH, NN이 주어진다.

두 번째 줄에 NN개의 자연수가 주어진다. ii번째로 주어지는 자연수는 P_iP\_i이다.

출력

초기 상태에서 산을 올라 돌을 모두 수집하고 다시 높이 0까지 돌아오는 데 걸리는 최소 동작 횟수를 출력한다.

제한

  • 1≤E≤10151 \le E \le 10^{15}
  • 0≤H≤1090 \le H \le 10^9
  • 1≤N≤200,0001 \le N \le 200\\,000
  • 0≤P_i≤H0 \le P\_i \le H (1≤i≤N1 \le i \le N)
  • P_i≠P_i+1P\_i \ne P\_{i+1} (1≤i≤N−11 \le i \le N-1)
  • 모든 돌을 수집할 수 있는 경우만 입력으로 주어진다.

예제1

  1. 예제 1

    입력
    8 6 5
    1 3 2 5 4
    
    예상 출력
    12