#include<iostream>
#include<algorithm>
using namespace std;
long long n,m,a[1000050];
bool check(long long mid){
int ct=0;
long long sum=0;
for(int i=0;i<n;i++){
if(sum+a[i]<=mid) sum+=a[i];
else {
sum=a[i];
ct++;
}
}
if(ct>=m) return false;
else return true;
}
int main(){
cin>>n>>m;
long long l=0,r=0;
for(int i=0;i<n;i++){
cin>>a[i];
l=max(l,a[i]);
r+=a[i];
}
while(l+1<r){
long long mid=(l+r)/2;
if(check(mid)) r=mid;
else l=mid;
}
if(check(l)) cout<<l;
else cout<<r;
}
这段代码ct的数量不应该再加一才是分的总组数吗