无
2023-07-25 11:03:49
发布于:河北
7阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100005],mx,sum;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>mx){
mx=a[i];
}
sum+=a[i];
}
long long l=mx,r=sum,mid,ans;
while(l<=r){
mid=(l+r)/2;
long long sum=a[1];
int cnt=1;
for(int i=2;i<=n;i++){
if(sum+a[i]<=mid){
sum+=a[i];
}else{
sum=a[i];
cnt++;
}
}
if(cnt<=m){
ans=mid;
r=mid-1;
}
else l=mid+1;
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个