Pagini recente » Cod sursa (job #1602051) | Cod sursa (job #2534830) | Cod sursa (job #1004446) | Cod sursa (job #1566748) | Cod sursa (job #2080343)
#include <iostream>
#include <fstream>
#define NMAX 501
#define oo (1ll << 40)
using namespace std;
long long d[NMAX + 1];
long long dp[NMAX][NMAX];
int n;
void read() {
ifstream in("podm.in");
in >> n;
for (int i = 1; i <= n + 1; i++)
in >> d[i];
in.close();
}
int main() {
read();
for (int l = 1; l <= n - 1; l++) {
for (int i = 1, j = i + l; i <= n - l && j <= n; i++, j++) {
dp[i][j] = oo;
for (int k = i; k <= j - 1; k++)
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + (d[i] * d[k + 1] * d[j + 1]));
}
}
ofstream out("podm.out");
out << dp[1][n] << "\n";
out.close();
return 0;
}