抄抄作业
2023-06-10 14:36:58
发布于:广东
54阅读
0回复
0点赞
#include<bits/stdc++.h>
#include<vector>
using namespace std;
int a[114514];
int n,m,x=0,s;
bool letmeseesee(int y){
int c=1;
int sum=0;
for(int i=1;i<=n;i++){
if(y>=sum+a[i]){
sum+=a[i];
}else{
c++;
sum=a[i];
}
}
return c<=m;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
if(x<a[i]){
x=a[i];
} s+=a[i];
}
int l=x,r=s;
int ans=s;
while(l<=r){
int m=(l+r)/2;
if(letmeseesee(m)){
r=m-1;
ans=m;
}else{
l=m+1;
}
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个