Pagini recente » Cod sursa (job #431759) | Cod sursa (job #1876380) | Cod sursa (job #2120927) | Cod sursa (job #2351299) | Cod sursa (job #2981323)
#include <bits/stdc++.h>
using namespace std;
string np = "podm";
ifstream f(np + ".in");
ofstream g(np + ".out");
// #define f cin
// #define g cout
long long n, v[503], dp[503][503];
int main()
{
f >> n;
for (int i = 1; i <= n + 1; i++)
f >> v[i];
for (int i = 1; i < n; i++)
dp[i][i + 1] = v[i] * v[i + 1] * v[i + 2];
for (int k = 3; k <= n; k++)
for (int i = 1; i + k - 1 <= n; i++)
{
int z = i + k - 1;
dp[i][z] = LLONG_MAX;
for (int j = i; j < z; j++)
{
long long cst = (long long)dp[i][j] + dp[j + 1][z];
cst += v[i] * v[j + 1] * v[z + 1];
dp[i][z] = min(dp[i][z], cst);
}
}
g << dp[1][n];
return 0;
}