wnzxpsz 2015-03-10 07:10:28
点我顶贴
收藏
删除
#include "iostream"
using namespace std;
int f[2001],g[2001][2001];
int abc(int i,int m)
{
int tem=0;
if(i=m) return(0);
if(g[i][m]!=0) return(g[i][m]);
for(int k=i;k<=m;k++)
{
g[i][k]=abc(i,k);
g[k+1][m]=abc(k+1,m);
g[i][m]=g[i][k]+g[k+1][m]+f[i]*f[k+1]*f[m+1];
if(g[i][m]>tem) tem=g[i][m];
}
printf("%d",tem);
return(tem);
}
int main()
{
int n,tem=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>f[i];
f[i+n]=f[i];
}
for(int i=0;i<=n+n;i++)
for(int j=0;j<=n+n;j++)
g[i][j]=0;
for(int i=1;i<=n+n;i++)
{
g[i][i+n]=abc(i,i+n);
if(g[i][i+n]>tem) tem=g[i][i+n];
}
cout<<tem;
system("pause");
}