Scape


一条街上有 \(n\) 家店,第 \(i\) 家店提供 \(w_i\) 单位的食物。

Scape 喜欢吃吃吃。但 Scape 的肚子的最大容量只有 \(c\) 单位。

Scape 可以选择某家店作为起点开始向右走(吃),每经过一家店(假设是第 \(i\) 家),只要他的肚子里还有剩余容量就会忍不住吃掉 \(w_i\) 单位的食物(如果没有剩余容量就不会吃而e是继续向右走)。

但 Scape 的生活很精致,他想最大化他吃过的店的数量,求这个数量。

输入格式
第一行两个整数 \(n,c\)

接下来的 \(n\) 个整数表示 \(w_i\)

输出格式
一行一个整数表示 Scape 最多能进多少店吃吃吃。

样例
input

7 5
1 5 4 3 2 1 1

output
3

数据范围
时间限制: 1s
空间限制: 256MB
对于 100% 的数据, \(n≤10^3,1≤c≤10^6,1≤wi≤10^3\)
我们可以枚举开始的在哪里,然后向右吃,看最多可以吃到哪里。全部当中求个最大值就可以了

#include
using namespace std;
const int N=1005;
int n,c,w[N],kc,ret,ans;
inline int max(int x,int y)
{
	return x>y? x:y;
}
int main()
{
	scanf("%d%d",&n,&c);
	for(int i=1;i<=n;i++)
		scanf("%d",w+i);
	for(int i=1;i<=n;i++)
	{
		kc=c,ret=0;
		for(int j=i;j<=n;j++)
		{
			if(kc>=w[j])
				kc-=w[j],ret++;
		}
		ans=max(ans,ret); 
	}
	printf("%d",ans);
	return 0;
}