1 solutions

  • 0
    @ 2025-5-31 16:57:09
    #include <bits/stdc++.h>
    using namespace std;
    int n,a[201],dp[201][201];
    int main(){
    	scanf("%d",&n);
    	for(int i = 1;i<=n;i++){
    		scanf("%d",&a[i]);a[n+i] = a[i];
    	}
    	for(int len = 3;len<=n+1;len++)
    		for(int i = 1;i+len-1<=2*n;i++){
    			int j = i+len-1;
    			for(int k = i+1;k<j;k++)dp[i][j] = max(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]);
    		}
    	int maxx = dp[1][n+1];
    	for(int i = 1;i<n;i++)maxx = max(maxx,dp[i+1][n+1+i]);
    	printf("%d",maxx);
    	return 0;
    }
    

    Information

    ID
    766
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    (None)
    # Submissions
    5
    Accepted
    3
    Uploaded By