29 lines
538 B
C++
29 lines
538 B
C++
#include<cstdio>
|
|
#include<iostream>
|
|
#include<cstdlib>
|
|
int t1,t2,n,i,j,k,ans=0,a[250],f[205][205];
|
|
int max(int a,int b){
|
|
if (a>b) return a;
|
|
else return b;
|
|
}
|
|
using namespace std;
|
|
int main()
|
|
{
|
|
cin >> n;
|
|
for (i=1;i<=n;i++)
|
|
{
|
|
cin >> a[i];
|
|
a[i+n]=a[i];
|
|
}
|
|
a[0]=a[n];a[n*2+1]=a[1];
|
|
for (i=2*n;i>=1;i--){
|
|
for (j=i;j<=2*n;j++){
|
|
for (k=i;k<=j;k++){
|
|
f[i][j]=max(f[i][j],f[i][k-1]+f[k+1][j]+a[i-1]*a[k]*a[j+1]);
|
|
}
|
|
if (j-i+1==n-1) ans=max(ans,f[i][j]);
|
|
}
|
|
}
|
|
cout << ans;
|
|
}
|