Pagini recente » Cod sursa (job #3328870) | Cod sursa (job #3330965) | Cod sursa (job #3327432) | Cod sursa (job #3340747) | Cod sursa (job #3347340)
#include <fstream>
#include <iostream>
#include <vector>
#define INF 0x3f3f3f3f
#define NMAX 505
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n;
long long dp[NMAX][NMAX];
long long solve(vector<long long> &d, int i, int j) {
if (dp[i][j]) {
return dp[i][j];
}
if (j - i == 1) {
return 0;
}
long long mini = INF;
for (int k = i + 1; k <= j - 1; k++) {
mini = min(mini, solve(d, i, k) + solve(d, k, j) + d[i] * d[j] * d[k]);
}
dp[i][j] = mini;
return mini;
}
int main() {
f >> n;
vector<long long> d(n + 2, 0);
for (int i = 1; i <= n + 2; i++) {
f >> d[i];
}
g << solve(d, 1, n + 1);
return 0;
}