任务描述
本关任务:一辆虚拟汽车加满油后可行驶 n km。旅途中有若干加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少,计算最少加油次数。
相关知识
无
编程要求
根据提示,在右侧编辑器补充代码,计算并输出数组的平均值和最大值。
测试说明
输入格式
终端输入正整数 n 和 k,表示汽车加满油后可行驶 n km,且旅途中有 k 个加油站。
接下来输入 k+1个整数,表示第 k 个加油站与第 k-1个加油站之间的距离。第 0 个加油站表示出发地,汽车已加满油。第 k+1个加油站表示目的地。
输出格式
将计算的最少加油次数输出。如果无法到达目的地,则输出 No Solution 。 平台会对你编写的代码进行测试:
测试输入:
7 7
1 2 3 4 5 1 6 6
预期输出: 4
提示:
本题使用贪心算法来做。其贪心选择为只要能赶到下一个加油站,那咱就不加油.
#include<iostream>
using namespace std;
int main()
{
int n, k, m;
cin>>n>>k;
// int a=n;
//cout<<endl;
int *arr=new int[k+1];
for(int i=0; i<k+1; i++)
{
cin>>arr[i];
}
int w=0;
int add=arr[0];
for(int i=1; i<k+1; i++)
{
add+=arr[i];
if(add>n)
{
//n=a;
w++;
add=0;
i--;
}
}
cout<<w;
return 0;
}