1 solutions
-
4
#include<bits/stdc++.h> using namespace std; const int N=210; int f[N][N]; int w[N]; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>w[i]; w[i+n]=w[i]; } for(int i=2;i<=n+1;i++) { for(int j=1;j+i-1<=n*2;j++) { int r=i+j-1; if(j+1==r) { f[j][r]=0; } else { for(int k=j+1;k<r;k++) { f[j][r]=max(f[j][r],f[j][k]+f[k][r]+w[j]*w[k]*w[r]); } } } } int res=0; for(int i=1;i<=n;i++) { int j=i+n; res=max(res,f[i][j]); } cout<<res; return 0; }
- 1
Information
- ID
- 998
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- (None)
- # Submissions
- 58
- Accepted
- 15
- Uploaded By