Pagini recente » Cod sursa (job #1146527) | Cod sursa (job #2497522) | Cod sursa (job #2558875) | Cod sursa (job #3133861) | Cod sursa (job #2577419)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
#define MAX 999999
int main() {
int n, v[100];
fin >> n;
//fout << n;
for (int i = 0; i <= n; i ++) {
fin >> v[i];
}
int dp[100][100];
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];
}