RT,代码如下:
#include <bits/stdc++.h>
using namespace std;
int n,k,a[100010];
bool check(int x){
int now=0,cnt=1;
for(int i=0;i<n;i++){
if(now+a[i]>x){
++cnt;
now=a[i];
}else{
now+=a[i];
}
}
return cnt<=k;
}
int cal(int l, int r) {
while(l<r){
int mid=(l+r)>>1;
if(check(mid)){
r=mid;
}else{
l=mid+1;
}
}
return l;
}
int main() {
int mx,sum = 0;
cin >>n>>k;
for(int i=0;i<n;i++) {
cin >>a[i];
sum+=a[i];
mx=max(mx,a[i]);
}
cout<<cal(mx,sum)<<endl;
return 0;
}