문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

5418 : C19 - 가솔린 최적화 문제 (Gasoline Optimization Problem)

•시간제한: 2.000 S •메모리제한: 1024 MB •제출: 0 •통과: 0 •만든사람: suakii

5418 : C19 - 가솔린 최적화 문제 (Gasoline Optimization Problem)

시간 2.000s · 메모리 1024MB · 제출 0 · 정답 0

문제 설명

ALGO 가도는 전장 $L$ km의 직선 도로입니다. $0$ km 지점이 출발점, $L$ km 지점이 도착점입니다.
이 가도에는 $N$ 개의 주유소가 있습니다. $i$ 번째 주유소는 출발점으로부터 $A_i$ km 지점에 위치하며 가솔린 가격은 리터당 $C_i$ 원입니다.
당신이 운전하는 자동차의 연비는 $1$ km/L 이고 연료 탱크 용량은 최대 $K$ 리터입니다. 처음에 자동차는 **$K$ 리터의 연료가 가득 채워진 상태**로 $0$ km 지점에서 출발합니다.
임의의 주유소에 도착했을 때 필요한 만큼의 가솔린을 구매하여 탱크 용량 $K$ 리터 이하로 충전할 수 있습니다. (연료 잔량이 정확히 $0$ 리터가 된 순간 주유소나 도착점에 도달하는 것도 가능합니다.)
출발점에서 도착점까지 도달하기 위해 지불해야 하는 **가솔린 구매 비용의 최솟값**을 구하는 프로그램을 작성하십시오. 만약 도착점에 도달할 수 없다면 `-1`을 출력하십시오.

[제약 조건]
• $1 \le N \le 100{,}000$
• $1 \le L, K \le 10^9$
• $1 \le A_1 < A_2 < \dots < A_N < L$
• $1 \le C_i \le 10^9$
• 입력되는 모든 값은 정수입니다.

입력 설명

첫째 줄에 주유소의 개수 $N$, 전장 $L$, 탱크 용량 $K$ 가 공백으로 구분되어 주어집니다.
둘째 줄부터 $N$ 개의 줄에 걸쳐 각 주유소의 위치 $A_i$ 와 가격 $C_i$ 가 공백으로 구분되어 주어집니다.

출력 설명

도착점까지 도달하기 위한 최소 가솔린 비용을 출력하십시오. 도달이 불가능하다면 `-1`을 출력하십시오.

입력 예시
COPY
복사되었습니다!

3 11 4
4 70
6 50
9 100

출력 예시
COPY
복사되었습니다!

440

도움

초기 연료 $4$ L로 $4$ km 주유소 도착 (잔여 $0$ L) $\to$ 2번 주유소($6$ km)까지 갈 $2$ L만 $70$ 원에 구매 ($140$ 원 지출)
$6$ km 주유소에서 잔여 $0$ L $\to$ 도착점($11$ km)까지 필요한 $5$ L 중 탱크 용량 가득($4$ L)을 $50$ 원에 구매 ($200$ 원 지출)
$9$ km 주유소 도착 시 잔여 $1$ L $\to$ 남은 $2$ km를 가기 위해 $1$ L를 $100$ 원에 추가 구매 ($100$ 원 지출)
총 비용: $140 + 200 + 100 = 440$ 원

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘