WA on #4。
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,l,r,a[100005];
bool check(int x) {
int sum=0,cnt=0;
for(int i=1;i<=n;i++) {
if(sum+a[i]<=x) sum+=a[i];
else sum=a[i],cnt++;
}
return cnt>=m;
}
signed main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i],l=max(l,a[i]),r+=a[i];
while(l+1<r) {
int mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid;
}
cout<<r;
return 0;
}