1 solutions
-
0
#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