Pagini recente » Cod sursa (job #2987963) | Cod sursa (job #2959255) | Cod sursa (job #1955824) | Cod sursa (job #709285) | Cod sursa (job #1916678)
#include <fstream>
#include <algorithm>
#define ll long long
#define INF 100000000000000000LL
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n;
unsigned ll d[501], dp[501][501];
int main()
{
fin >> n;
for (int i = 0; i <= n; i++)
fin >> d[i];
for (int i = 2; i <= n; i++)
dp[i - 1][i] = d[i] * d[i - 1] * d[i - 2];
for (int lg = 2; lg <= n; lg++)
for (int i = 1; i <= n - lg + 1; i++)
{
dp[i][i + lg - 1] = INF;
for (int k = 1; k < lg; k++)
dp[i][i + lg - 1] = min(dp[i][i + lg - 1],
dp[i][i + k - 1] + dp[i + k][i + lg - 1] + d[i - 1] * d[i + k - 1] * d[i + lg - 1]);
}
fout << dp[1][n];
return 0;
}