问题标题: 酷町堂:4522

0
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;
  • }
  • 为什么我错了
  •  

0
0
我要回答