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,输入的距离可能无序)。
第一行:整数 D,表示起点到终点的总路程(D > 0);
第二行:整数 M,表示油箱最大容量(即满油状态下最多可行驶 M 个单位距离,M > 0);
第三行:整数 N,表示沿途加油站的数量(N ≥ 0,N=0 表示无加油站);
第四行:N 个整数,依次表示每个加油站相对于起点的距离 g₁, g₂, ..., gₙ(距离为非负整数,且严格小于 D,输入的距离可能无序)。
输出
若能到达终点,输出最少加油次数;
若无法到达终点(如某段路程超过油箱最大续航),输出 -1。
若无法到达终点(如某段路程超过油箱最大续航),输出 -1。
样例输入 复制
950
400
4
200 375 550 750
样例输出 复制
2