思路:模拟,边输入边判断,如果a[i]<=b,可以装的下,s就+=a。接着判断如果s>d,已经超过了,就装到一个箱子里,cnt++,并且把s清零,最后输出cnt即可
还不懂?看代码注释
AC CODE:
#include<iostream>
using namespace std;
int n,cnt,m,d,a,b,s;
int main(){
cin>>n>>b>>d;
for(int i=1;i<=n;i++){
cin>>a;//输入
if(a<=b){//如果符合条件
s+=a;
if(s>d){//超过这个箱子的最大承受限度
cnt++;//计数器+1
s=0;//清零
}
}
}
cout<<cnt;//输出
return 0;
}