那代码前给个关注,给个小赞鼓励一下吧
#include<bits/stdc++.h>
using namespace std;
long long n,m,l,r,c,num,x,t,mid,ans,i,j;
int a[100000001];
bool check(int x)
{
int v=0,t=1;
for(i=1;i<=n;i++)
{
if(v+a[i]>x)
{
v=a[i];
t++;
}
else v+=a[i];
if(t>m||v>x) return 0;
}
return 1;
}
int main()
{
cin>>n>>m;
for(i=1;i<=n;i++)
cin>>a[i];
l=0;r=INT_MAX;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid))
r=mid-1;
else l=mid+1;
}
cout<<l;
return 0;
}