3700: 最少加油次数

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:12 解决:7

题目描述

你需要驾驶汽车从起点出发前往终点,总行驶路程为 D 个单位距离。汽车油箱的最大容量为 M(单位:油量),每单位油量可行驶 1 个单位距离。沿途分布着 N 个加油站,每个加油站都有一个相对于起点的距离值。 在保证能到达终点的前提下,选择最少的加油次数完成行程;若无论如何都无法到达终点(例如某两个可到达点之间的距离超过油箱最大续航),则输出 -1。

输入

输入格式
第一行:整数 D,表示起点到终点的总路程(D > 0);
第二行:整数 M,表示油箱最大容量(即满油状态下最多可行驶 M 个单位距离,M > 0);
第三行:整数 N,表示沿途加油站的数量(N ≥ 0,N=0 表示无加油站);
第四行:N 个整数,依次表示每个加油站相对于起点的距离 g₁, g₂, ..., gₙ(距离为非负整数,且严格小于 D,输入的距离可能无序)。

输出

若能到达终点,输出最少加油次数;
若无法到达终点(如某段路程超过油箱最大续航),输出 -1。

样例输入 复制

950
400
4
200 375 550 750

样例输出 复制

2