int BottomUpCutRod(int p[],int n)
{
int *r=new int[n+1];
r[0]=0;
for (int j=1;j<=n;j++)
{
int q=-1;
for(int i=0;i<=j;i++)
{
q=max(q,p[i]+r[j-i-1]);
}
r[j]=q;
}
return r[n];
}
{
int *r=new int[n+1];
r[0]=0;
for (int j=1;j<=n;j++)
{
int q=-1;
for(int i=0;i<=j;i++)
{
q=max(q,p[i]+r[j-i-1]);
}
r[j]=q;
}
return r[n];
}