题目点这里
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll arr[100010];
ll n,m,k;
bool check(ll x){
ll now=0,box=1,sum=0;
for(int i=n-x+1;i<=n;i++){
if((arr[i]+now)<=k){
now+=arr[i];
sum++;
}else{
if(box<m){
box++;
now=0;
i--;
}else{
break;
}
}
}
if(sum==x){
return true;
}else{
return false;
}
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
ll l=1,r=n,ans=l;
while(l<r){
ll mid=(l+r)/2;
if(check(mid)){
l=mid+1;
ans=mid;
}else{
r=mid-1;
}
}
cout<<ans;
return 0;
}