代码第4个点错了,不知道为什么??
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1000005];
bool ok(long long ma)
{
long long l=0,d=1;
for(int i=1;i<=n;i++)
{
if(l+a[i]<=ma) l+=a[i];
else
{
l=a[i];
d++;
}
}
return d>m;
}
int main()
{
cin>>n>>m;
long long ll=0,ma=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
ll+=a[i];
ma=max(ma,a[i]);
}
long long l=ma,r=ll;
while(l+1<r)
{
long long mid=(l+r)/2;
if(ok(mid)) l=mid;
else r=mid;
}
cout<<r;
return 0;
}