能找到就并,找不到就自己成为一段
#include<cstdio>
using namespace std;
int main()
{
int n,m,shu,sum=0,ans=1;//它的初始值应该为1 ,因为一定有一段
scanf("%d%d",&n,&m);
//n代表数列的长度m代表每段的最大值
//ans代表分段数 ,sum代表每段的值
for(int i=0;i<n;i++)
{
scanf("%d",&shu);
if(sum+shu<=m)//这个地方很巧妙
{
sum+=shu;
}
else
{
sum=shu;
ans++;
}
//printf("%d \n",sum);
}
printf("%d",ans);
return 0;
}