#1211. 加油最少次数

加油最少次数

加油最少次数

题目描述

一条笔直的公路,起点在坐标 00,终点在坐标 LL。一辆汽车油箱最多装 DD 升油,每升油可以跑 11 千米,出发时油箱是满的。公路上有 nn 个加油站,第 ii 个加油站位于坐标 xix_i,每次加油都可以把油箱加满且不耗时。汽车只能沿着坐标增大的方向行驶,途中不能掉头。

请问从起点开到终点,最少需要加油几次;如果无论怎么加油都无法到达终点,输出 −1-1。

输入格式

第一行三个整数 LL、DD、nn。

第二行 nn 个整数 x1<x2<⋯<xnx_1 < x_2 < \dots < x_n,表示各个加油站的位置。当 n=0n = 0 时第二行不存在。

输出格式

一行一个整数,表示最少加油次数;无解输出 −1-1。

样例

输入样例1

100 30 3
20 40 70

输出样例1

3

输入样例2

100 10 2
5 50

输出样例2

-1

样例解释

样例 1:满油能跑 3030 千米,0→20→40→70→1000 \to 20 \to 40 \to 70 \to 100,中途加 33 次油。

样例 2:从坐标 55 出发后,满油最远到 1515,而下一个加油站在 5050,中间没有加油站,无法到达终点。

数据范围

1≤L≤1091 \le L \le 10^9,1≤D≤L1 \le D \le L,0≤n≤2×1050 \le n \le 2 \times 10^5,0<xi<L0 < x_i < L 且所有 xix_i 互不相同。