参数搜索。
代码:
#include<iostream>
#include<fstream>using namespace std;long long n,m,mid;
long long a[100001];long long solve(){long long i,j=1,k=0;for(i=1;i<=n;i++){if(a[i]-a[k]>mid){j++;k=i-1;}}return j;
}void read(){
// ifstream cin("in.txt");long long i,j,k=0,s;while(cin>>n>>m){k++;s=0;for(i=1;i<=n;i++){cin>>j;s=max(s,j);a[i]=a[i-1]+j;}i=s;j=a[n];while(i<=j){mid=(i+j)>>1;if(solve()<=m) j=mid-1;else i=mid+1;}cout<<i<<endl;}
}int main(){read();return 0;
}