tjsudys 2013-01-16 07:56:00
点我顶贴
收藏
删除
#include<stdio.h>
long int f[600][600]={0},a[251];
int max(int t,int b)
{
return t>b? t:b;
}
main()
{
int i,j,n,k,t=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
a[i+n]=a[i];
}
for(i=2;i<=n;i++)
for(j=1;j<=n;j++)
{
for(k=j+1;k<=i+j-1;k++)
{
f[j][j+i]=max(f[j][k]+f[k][j+i]+a[j]*a[k]*a[j+i],f[j][j+i]);
}
}
for(i=1;i<=n;i++)t=max(t,f[i][i+n]);
printf("%d",t);
return 0;
}