#P2668. 直到下一站为止

直到下一站为止

题目背景

你是一艘星际飞船的船长,正在穿越一片危险的星云。你的飞船需要从起点飞到终点,沿途有多个空间站可以补给燃料。每个空间站都有不同的燃料价格,你的飞船油箱容量有限,且每公里消耗1单位燃料。你需要选择在哪些空间站加燃料,使得总花费最小。假设起点和终点都有空间站,起点燃料免费,但你必须从起点出发。

题目描述

给定起点到终点的距离 D 公里,油箱容量 C 升,以及沿途 N 个空间站的位置(距离起点的公里数)和每升燃料的价格。起点在 0 公里处,终点在 D 公里处,起点和终点都有空间站(起点价格视为0,终点价格视为0)。你的车初始有 C 升燃料。每公里消耗 1 升燃料。问从起点到终点的最小燃料花费。如果无法到达,输出 -1。

输入格式

第一行三个整数 D, C, N 接下来 N 行,每行两个整数:距离起点的公里数 pos 和 燃料价格 price 保证 pos 按升序给出,且包含起点 (0,0) 和终点 (D,0)

输出格式

一个整数,表示最小花费,或 -1 表示无法到达。

样例输入

400 200 4
0 0
100 8
200 5
300 7
400 0

样例输出

1000

样例解释

从起点出发,油箱满 200 升,开到 200 公里处,还剩 0 升,加 200 升(花费 1000),然后开到终点 700 公里处,还剩 0 升,不需要再加。