80分证据:https://www.luogu.com.cn/record/42455350
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100001],l=-0x7fffffff,r=0;
bool check(int k)
{
int s=0,rgt=0;
for(int i=0;i<n;i++)
{
if(s+a[i]<k)
{
s+=a[i];
continue;
}
else
{
++rgt;
s=a[i];
}
}
return rgt>=m;
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>a[i];
l=max(l,a[i]);
r+=a[i];
}
while(l<=r)
{
int mid=(l+r)>>1;
if(check(mid))
{
l=mid+1;
}
else
{
r=mid-1;
}
}
cout<<r<<"\n";
}