#include<bits/stdc++.h>
using namespace std;
long long n,m,a[200001],l=0,r=0,mid;
bool check(int x){
int ans=1,h=x;
for(int i=0;i<n;i++){
if(h<a[i]){
h=x-a[i];
ans++;
}else h-=a[i];
if(h>0)h--;
}return ans>m;
}int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i];
r+=a[i];
}r+=n-1;
l=*max_element(a,a+n);
if(m==1){
cout<<r;
return 0;
}while(l+1<=r){
mid=l+(r-l)/2;
if(check(mid))r=mid;
else l=mid;
}cout<<l;
return 0;
}
疑似是check函数写错了,目前WA20分