Pagini recente » Borderou de evaluare (job #3331244) | Cod sursa (job #3347435) | Cod sursa (job #3350163) | Cod sursa (job #3321163) | Cod sursa (job #3350001)
#include<iostream>
#include<vector>
using namespace std;
#define MAXX 1e9
int main()
{
int n;
cin >> n;
vector<int> nums(n+1);
for (int i = 0; i <= n; i++)
cin >> nums[i];
vector<vector<int>> dp(n+1, vector<int>(n+1, 1e9));
for (int i = 0; i <= n; i++)
dp[i][i] = 0;
for (int i = 1; i < n; ++i) {
dp[i][i + 1] = nums[i - 1] * nums[i] * nums[i + 1];
}
for (int i = n; i >= 1; i--) {
for (int j = i + 1; j <= n; j++) {
for (int k = i; k < j; k++) {
dp[i][j] = min(dp[i][k] + dp[k+1][j] + nums[i-1] * nums[k] * nums[j], dp[i][j]);
}
}
}
cout << dp[1][n];
}