Pagini recente » Cod sursa (job #1492931) | Cod sursa (job #1461257) | Cod sursa (job #2469067) | Cod sursa (job #2930950) | Cod sursa (job #2493292)
#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>
#define ll long long
using namespace std;
const int MAXN = 510;
ifstream fin("podm.in");
ofstream fout("podm.out");
ll dim[MAXN], dp[MAXN][MAXN];
int n;
void read() {
fin >> n;
for (int i = 0; i <= n; ++i)
fin >> dim[i];
}
void solve() {
for (int i = 1; i < n; ++i)
dp[i][i + 1] = dim[i - 1] * dim[i] * dim[i + 1];
for (int d = 2; d <= n; ++d) {
for (int k = 1; k <= n - d; ++k) {
dp[k][k + d] = LLONG_MAX;
for (int i = k; i < k + d; ++i)
dp[k][k + d] = min(dp[k][k + d], dp[k][i] + dp[i + 1][k + d] + dim[k - 1] * dim[i] * dim[k + d]);
}
}
}
int main() {
read();
solve();
fout << dp[1][n];
return 0;
}