Pagini recente » Borderou de evaluare (job #3197224) | Borderou de evaluare (job #3303505) | Profil Gheorghita_David | Borderou de evaluare (job #3302461) | Cod sursa (job #3350004)
#include<fstream>
#include<vector>
using namespace std;
#define MAXX 1e18
ifstream f("podm.in");
ofstream g("podm.out");
int main()
{
int n;
f >> n;
vector<int> nums(n+1);
for (int i = 0; i <= n; i++)
f >> nums[i];
vector<vector<long long>> dp(n+1, vector<long long>(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]);
}
}
}
g << dp[1][n];
}