#include<bits/stdc++.h>
using namespace std;
int n,k,vi[505],l,r,si[505],ti[505],ll;
bool check(int x){
int summ,a=0;
for(int i=1;i<=n;i++){
if(summ+vi[i]<=x){
summ+=vi[i];
}
else{
summ=vi[i];
a++;
}
}
if(summ>0){
a++;
}
return a<=k;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>vi[i];
}
l=1;r=1e9;
while(l<r){
int mid=(l+r)/2;
if(check(mid)){
r=mid;
}
else{
l=mid+1;
}
cout<<1<<' ';
}
cout<<endl;
cout<<l<<endl;
int summ=0,a=n;
for(int i=n;i>=1;i--){
if(summ+vi[i]<=l){
summ+=vi[i];
}
else{
summ=vi[i];
ll++;
si[ll]=i+1;
ti[ll]=a;
a=i;
}
}
if(summ>0){
ll++;
si[ll]=1;
ti[ll]=a;
}
for(int i=ll;i>=1;i--){
cout<<si[i]<<' '<<ti[i]<<endl;
}
}
P1281
样例:
9 3
1 2 3 4 5 6 7 8 9