Pagini recente » Cod sursa (job #1891174) | Cod sursa (job #1434356) | Cod sursa (job #2475481) | Cod sursa (job #948692) | Cod sursa (job #2105297)
#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>
#define NMAX 501
using namespace std;
long long dp[NMAX][NMAX];
long long d[NMAX + 1];
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 i = 1; i < n; i++)
dp[i][i + 1] = d[i] * d[i + 1] * d[i + 2];
for (int len = 3; len <= n; len++)
for (int i = 1, j = len; i <= n && j <= n; i++, j++) {
dp[i][j] = LLONG_MAX;
for (int k = i; k < j; 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();
}