Pagini recente » Cod sursa (job #3326458) | Cod sursa (job #3315410) | Cod sursa (job #3344189) | Cod sursa (job #3320747) | Cod sursa (job #3347338)
#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;
int dp[NMAX][NMAX];
int solve(vector<int> &d, int i, int j) {
if (dp[i][j]) {
return dp[i][j];
}
if (j - i == 1) {
return 0;
}
int 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<int> d(n + 2, 0);
for (int i = 1; i <= n + 1; i++) {
f >> d[i];
}
g << solve(d, 1, n + 1);
return 0;
}