- #include<iostream>
- using namespace std;
- int data[101][2];
- int dp[100][100];
- int main(){
- int n;
- cin>>n;
- int i=0;
- cin>>data[i][0];
- for( ;i!=n-1 ;i++ ){
- cin>>data[i][1];
- data[i+1][0]=data[i][1];
- }
- data[i][1]=data[0][0];
- int yy=0;
- for( int i=2;i<n+1;i++ )
- for(int k=0;k<n;k++)
- for(int chazhi=0;chazhi<i-1 ;chazhi++ )
- {
- yy=dp[k][(k+chazhi)%n]+dp[(chazhi+1+k)%n][(k+i-1)%n]+data[k][0]*data[(k+chazhi)%n][1]*data[(k+i-1)%n][1];
- if(yy>dp[k][(k+i-1)%n])
- dp[k][(k+i-1)%n]=yy;
- }
- int max=0;
- for( int i=0;i<n ;i++ )
- for(int j=0 ;j<n;j++){
- if(dp[i][j]>max)
- max=dp[i][j];
- }
- cout<<max<<endl;
- return 0;
- }
转载于:https://blog.51cto.com/treap/1085940