题目:https://www.luogu.com.cn/problem/P1182
满江红:https://www.luogu.com.cn/record/195958394
Code:
#include<iostream>
#include<stdio.h>
#define LL long long
#define TF bool
using namespace std;
LL n,m,a[100005];
TF check(LL x){
LL y=0,cnt=0;
for(int i=1;i<=n;i++){
if(y+a[i]<=x){
y+=a[i];
}else{
y=a[i];
cnt++;
}
}
return cnt>=m;
}
LL lower(){
LL l=0,r=1E8+1;
while(l+1<r){
LL mid=l+r>>1;
if(check(mid))l=mid;
else r=mid;
}
return l;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
cout<<lower();
return 0;
}