Pagini recente » Cod sursa (job #1957045) | Cod sursa (job #2548146) | Cod sursa (job #1788882) | Cod sursa (job #1919976) | Cod sursa (job #2879189)
#include <iostream>
#include <fstream>
#define int long long
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
const int NMAX = 500;
int v[NMAX + 2];
int dp[NMAX + 2][NMAX + 2];
signed main() {
int n, i, j, len, k;
fin >> n;
n++;
for (i = 0; i < n; ++i)
fin >> v[i];
for (i = 1; i < n; ++i)
dp[i][i] = 0;
for (len = 2; len < n; ++len) {
for (i = 1; i < n - len + 1; ++i) {
j = i + len - 1;
dp[i][j] = (1ll << 62);
for (k = i; k < j; ++k) {
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + v[i - 1] * v[k] * v[j]);
}
}
}
fout << dp[1][n - 1] << "\n";
return 0;
}