Pagini recente » Cod sursa (job #1769608) | Cod sursa (job #1888124) | Cod sursa (job #3349691) | Cod sursa (job #3341240) | Cod sursa (job #3347298)
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
int main() {
ifstream fin("podm.in");
ofstream fout("podm.out");
int n;
fin >> n;
vector<long long> d(n + 1);
for(int i = 0; i <= n; i++)
fin >> d[i];
vector<vector<long long>> dp(n + 1, vector<long long>(n + 1, 0));
for(int len = 2; len <= n; len++) {
for(int i = 1; i <= n - len + 1; i++) {
int j = i + len - 1;
dp[i][j] = LLONG_MAX;
for(int k = i; k < j; k++) {
long long cost = dp[i][k] + dp[k+1][j] + d[i-1] * d[k] * d[j];
if(cost < dp[i][j])
dp[i][j] = cost;
}
}
}
fout << dp[1][n];
return 0;
}