```cpp
#include<bits/stdc++.h>
using namespace std;
#define maxn 505
int n,k,a[maxn];
bool check(int m){
int s=0,t=1;
for(int i=1;i<=n;i++){
if(s+a[i]>m){
t++;
s=0;
}
s+=a[i];
if(s>m) return 0;
}
if(t<=k) return 1;
else return 0;
}
void p(int m){
int t=0,s=k,ans[maxn][2];
ans[k][1]=n;
for(int i=n;i>=1;i--){
if(t+a[i]>m){
t=0;
ans[s--][0]=i+1;
ans[s][1]=i;
}
t+=a[i];
}
ans[s][0]=1;
for(int i=1;i<=k;i++) cout<<ans[i][0]<<" "<<ans[i][1]<<endl;
return;
}
void ef(int l,int r){
int m;
while(l<r){
m=(l+r)/2;
if(check(m)) r=m;
else l=m+1;
}
p(r);
return;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i];
ef(1,1000000000);
return 0;
}
```
@[SDHHENRY](/space/show?uid=85538) AC代码,参考一下
by Achtoria @ 2018-10-25 12:03:29
@[陈长](/space/show?uid=78386) Thanks
by SDHHENRY @ 2018-10-25 14:20:04