求助求助!不知道哪里错了
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复10
  • 已保存回复10
  • 发布时间2021/11/5 16:37
  • 上次更新2023/11/4 01:23:48
查看原帖
求助求助!不知道哪里错了
487562
封禁用户楼主2021/11/5 16:37

第五题松果(cone)

【题目描述】 大森林有熊兄弟的好朋友松鼠蹦蹦,一天蹦蹦来到一很长的小路,发现沿路地上都有松果,高兴极了,决定尽可能多吃松果。蹦蹦观察到,每个松果的重量并不一相同,可蹦蹦的肚子容量 有限,总共最多只能吃重量C的松果。蹦蹦吃东西有个特点,一旦开吃就会不停的吃,不会漏过路上碰 到松果,直到遇到一个吃不下或吃完停止。也就是说松鼠蹦蹦只会吃 连续一段的松果。 已知路上共有N个松果,顺序的重量是wl,w2,….wn。蹦蹦最多可能吃多少颗松果?


【输入格式】 第一行,二个正整数,空格分开,表示N和C,N范围在[1..50000],C范围在[1..1000000]。 第二行,N个正整数,空格分开,表示从wl、w2,...wn,即松果的重量。每个松果重 量范围在[1..1000]。


【输出格式】 一个正整数,蹦蹦可以吃到的最多松果数量。 样例解群: 第1个样例,吃:(1, 2, 1, 1)这段的松果。 第2个样例,吃:(2, 1, 1)这段的松果。 输入样例输出样例

5 5

3 12 11

4


9 5

1 5 4 3 2 1 1 4 1

3

个人代码(请纠错)

#include<bits/stdc++.h>
using namespace std;
int n,c,l=1,ma,su,g;
long long a[50005];
int max(int a,int b) {
	return a>b?a:b;
}
int main() {
	cin>>n>>c;
	for(int i=1; i<=n; i++) cin>>a[i];
	for(int i=1; i<=n; i++) {
		if(c-su>=a[i]){
			su+=a[i];
			g++;	
		}else{
			ma=max(g,ma);
			su-=a[l];
			g=0;
		}
		l++;
	}
	cout<<g;
	return 0;
}
2021/11/5 16:37
加载中...