555......
#include<iostream>
#include<cstdio>
using namespace std;
long long a[1000001];
int main()
{
long long l,k,minn=-1,maxx=-1,b;
cin>>l>>k;
for(int i=1;i<=l;i++){cin>>a[i];if(a[i]>0) b+=a[i];}
long long r=b,z=1;
while (z<=r)
{
long long mid=(z+r)/2,s=0,ti=0;
for (int i=1;i<=l;i++){
if(0<ti+a[i]) ti+=a[i];
if(ti>mid-1) {s++;ti=0;}
}
if (s>k) z=mid+1;
if (s==k) {minn=mid;r=minn-1;}
if (s<k) r=mid-1;
}
if (minn==-1) {cout<<"-1";return 0;}
z=1;r=b;
while (z<=r)
{
long long mid=(z+r)/2,s=0,ti=0;
for (int i=1;i<=l;i++){
if(0<ti+a[i]) ti+=a[i];
if(ti>mid-1) {s++;ti=0;}
}
if (s>k) z=mid+1;
if (s==k) {maxx=mid;z=maxx+1;}
if (s<k) r=mid-1;
}
cout<<minn<<" "<<maxx;
return 0;
}
请求大佬们帮助!! ——一位蒟蒻的呐喊。