Pagini recente » Cod sursa (job #3186443) | Cod sursa (job #1405724) | Cod sursa (job #2434820) | Cod sursa (job #2492576) | Cod sursa (job #1388911)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
const int MAXN = 511;
const unsigned long long INF = ~0;
int n, d[MAXN];
unsigned long long m[MAXN][MAXN];
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
cin >> n;
for (int i = 0; i <= n; i++)
cin >> d[i];
for (int i = 1; i <= n; i++) {
m[i][i] = 0;
m[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
}
unsigned long long p, q;
for (int l = 2; l <= n - 1; l++) {
for (int i = 1; i <= n - l; i++) {
int j = i + l;
m[i][j] = INF;
for (int k = i; k <= j - 1; k++) {
m[i][j] = min(m[i][j], m[i][k] + m[k + 1][j] + d[i - 1] * d[k] * d[j]);
}
}
}
cout << m[1][n];
return 0;
}