WuK 2015-08-06 20:41:13
点我顶贴
收藏
删除
#include <iostream>
#define maxn 128
using namespace std;
int n,ans=0,a[2*maxn]={0},f[2*maxn][2*maxn]={0};
int work(int l,int r)
{
if(f[l][r])return f[l][r];
for(int i=l;i<r;++i)
f[l][r]=max(f[l][r],work(l,i)+a[l]*a[i+1]*a[r+1]+work(i+1,r));
return f[l][r];
}
int main()
{
ios::sync_with_stdio(0);//关闭流同步
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>a[i];
a[i+n]=a[i];
}
for(int i=1;i<=n;++i)ans=max(ans,work(i,i+n-1));
cout<<ans;
}