0
已解决
4522 吃金币经验值:400
题目描述 Description
在卡丁车赛道中间,每隔1m都有含有一定数量金币的金币堆。现在小P驾驶的卡丁车需要完成连续吃掉金币(不能掉头,只能往前行驶),且吃掉的金币总数要达到m的任务。请你帮小P设计一种方案,使小P在驾驶卡丁车连续吃掉达到m个金币的最小行驶长度。
输入描述 Input Description
两行,第一行两个数,n表示赛道上共有多少堆金币,m完成任务最少需要的金币数量
第二行,n个数,表示赛道的起点到终点的金币分布(相邻两数之间用空格隔开)
输出描述 Output Description
一个数,表示小P最小的行驶长度。
样例输入 Sample Input
11 13 1 2 4 5 9 4 1 10 1 1 7
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
1<=n<=1,000,000
1<=m<=1000
1<=每对金币数<=m
- #include <iostream>
- using namespace std;
- int a[1000005];
- int main(){
- int n,m,ans=0,t=0,sum=2000;
- cin>>n>>m;
- for(int i=1;i<=n;i++){
- cin>>a[i];
- }
- for(int i=1;i<=n;i++){
- for(int j=i;j<=n;j++){
- ans+=a[j];
- t++;
- if(ans>=m&&t<sum){
- sum=t;
- t=0;
- ans=0;
- break;
- }
- }
- t=0;
- ans=0;
- }
- cout<<sum;
- return 0;
- }
- 为什么我错了