题目描述
小赛很想到外面的世界看看,于是收拾行装准备旅行。背了一个大竹筐,竹筐里装满了路上吃的,这些吃的够它走N公里。为了规划路线,它查看了地图,沿途中有若干个村庄,在这些村庄它都可以补充食物。但每次补充食物都需要花费时间,在它竹筐的食物足够可以走到下一个村庄的时候它就不用补充,这样背起来不累而且不花费时间。地图上可以看到村庄之间的距离,现在它要规划一下它的路线,确定在哪些村庄补充食物可以使沿途补充食物的次数最少。你能帮帮小赛吗?
输入
第一行有两个数字,第一个数字为竹筐装满可以走的公里数,即N值;第二个数字为起点到终点之间的村庄个数。 第二行为起点和村庄、村庄之间、村庄和终点之间的距离。 这些数字都为整数,且范围不能超过一个int型表达的范围。
| 样例输入7 4 5 6 3 2 2 |
输出
程序输出为至少需要补充食物的次数。
| 样例输出
2
|
时间限制C/C++语言:1000MS其它语言:3000MS | 内存限制C/C++语言:65536KB其它语言:589824KB |
#include <iostream>
using namespace std;
int main()
{
int n, num, count = 0, i, j = 0;
cin >> n >> num;
while (num >= 0)
{
cin >> i;
if (i > n)
{
count = 0;
break;
}
if (i + j > n)
{
count++;
j = i;
}
else
{
j += i;
}
num--;
}
cout << count << endl;
return 0;
}