Pagini recente » Cod sursa (job #2640578) | Cod sursa (job #1146526) | Cod sursa (job #2770479) | Cod sursa (job #2241093) | Cod sursa (job #2577420)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
#define MAX 999999
#define MAX_SIZE 10001
int v[MAX_SIZE];
int dp[MAX_SIZE][MAX_SIZE];
int main() {
int n
fin >> n;
//fout << n;
for (int i = 0; i <= n; i ++) {
fin >> v[i];
}
for (int i = 0 ; i < n; i ++)
for (int j = 0; j < n; j ++)
dp[i][j] = MAX;
for (int i = 0 ; i < n ; i ++) {
dp [i][0] = 0;
}
for (int i = 0 ; i < n - 1 ; i ++) {
dp [i][1] = v[i] * v[i + 1] * v[i + 2];
}
for (int j = 2 ; j < n; j ++) {
for (int i = 0; i < n - j; i ++) {
for (int k = i + 1; k <= i + j; k++) {
dp[i][j] = min (dp[i][j], dp[i][k-i-1] + dp [k][j-(k-i)] + v[i] * v[k] * v[i + j + 1]);
}
}
}
/*
for (int i = 0 ; i < n; i ++) {
for (int j = 0; j < n; j++)
cout << dp[i][j] << " ";
cout << endl;
}*/
fout << dp[0][n - 1];
}