Pagini recente » Cod sursa (job #518357) | Cod sursa (job #2646108) | Cod sursa (job #545310) | Cod sursa (job #2770387) | Cod sursa (job #2722977)
#include <bits/stdc++.h>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
// #define f cin
// #define g cout
// code-runner.runInTerminal
int n, v[502];
long long dp[502][502];
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] = 1ll * v[i] * v[i + 1] * v[i + 2];
for (int lg = 3; lg <= n; lg++)
for (int i = 1; i + lg - 1 <= n; i++)
{
int nd = i + lg - 1;
dp[i][nd] = LLONG_MAX;
for (int j = i; j < nd; j++)
{
long long cst = (long long)dp[i][j] + dp[j + 1][nd] +
1ll * v[i] * v[j + 1] * v[nd + 1];
dp[i][nd] = min(dp[i][nd], cst);
}
}
g << dp[1][n];
return 0;
}