#include
#include
#include
#include
using namespace std;
int max1(int,int);
int max2(int,int);
int x,y,i,j,m,n,k,t,l;
int a[501],f[501][501],d[501];
int main()
{
cin>>m>>k;
for(i=0;i<=500;i++)
for(j=0;j<=500;j++)
f[i][j]=10000000;
for(j=1;j<=m;j++)
{
cin>>a[j];
d[j]=d[j-1]+a[j];
f[1][j]=d[j];
}
for(i=2;i<=k;i++)
for(j=1;j<=m;j++)
for(l=1;l<=j-1;j++)
if(max1(f[i-1][l],d[j]-d[l])
f[i][j]=max1(f[i-1][l],d[j]-d[l]);
max2(m,k);
}
int max1(int x,int y)
{
if(x>y) return x;else return y;
}
int max2(int i,int j)
{
int t,x;
if(j==0)return 0;
if(j==1)
{
cout<<l<<" "<<endl;
return 0;
}
t=i;
x=a[i];
while(x+a[t-1]<=f[k][m])
{
x+=a[i-1];
t--;
}
max2(t-1,j-1);
cout<<t<<" "<<i<<endl;
return 0;
}
各位大神帮忙看看程序停止运行是为什么?