Pagini recente » Cod sursa (job #1967985) | Cod sursa (job #2508308) | Cod sursa (job #2329572) | Cod sursa (job #2502405) | Cod sursa (job #3182466)
#include <bits/stdc++.h>
using namespace std;
#define int long long int
ifstream fin ("podm.in");
ofstream fout ("podm.out");
int dp[505][505],cc;
signed main() {
int n;
fin >> n;
vector<pair<int,int>> v(n+1);
for (int i=0; i<=n; i++) {
int c;
fin >> c;
if (i) {
v[i].second=c;
v[i].first=cc;
}cc = c;
}
for (int lg = 2; lg <= n; lg++) {
for (int i=1; i <= n-lg+1; i++) {
int j = i + lg - 1;
dp[i][j] = INT_MAX;
for (int p=i+1; p <= j; p++) {
dp[i][j] = min(dp[i][j],dp[i][p-1]+dp[p][j]+v[i].first*v[p].first*v[j].second);
}
}
}
fout << dp[1][n];
return 0;
}