一辆加满油的汽车欲行驶到m公里外的终点,旅途中有若干加油站,并且每个加油站距离起点的公里数已知,汽车加满油后可行驶n公里。如何用最少的加油次数到达目的地。
输入格式:
第一行输入终点公里数m,和汽车加满油可行驶的公里数n,以及加油站的个数k。第二行输入k个整数分别代表从起点到终点的k个加油站距离起点的公里数。
输出格式:
输出最少的加油次数。
输入样例:
在这里给出一组输入。例如:
10 6 3
2 5 9
输出样例:
在这里给出相应的输出。例如:
1
思路
对于每个加油站,判断汽车不加油是否能够抵达,不行就提前加油,行就不加
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int m;//总公里数
int n;//加满油可行驶公里数
int k;//加油站个数
int sum=0;//加油次数
cin>>m>>n>>k;
int arr[k];//距离公里数
int temp=n;//初始油量可行驶公里数
for(int i=0;i<k;i++)
{
cin>>arr[i];
}
for(int i=0;i<k;i++)//或者i=1,第一个加油站必定能到达,否则该题无解
{
if(temp<arr[i])
{
temp+=n;
sum+=1;
}
}
cout<<sum;
return 0;
}
轻微改编: