Pagini recente » Cod sursa (job #2371328) | Cod sursa (job #2563121) | Cod sursa (job #906627) | Cod sursa (job #832254) | Cod sursa (job #1500348)
#include <fstream>
#include <limits>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
#define NMAX 505
#define Min(a, b) ((a) < (b) ? (a) : (b))
long long d[NMAX], n;
long long best[NMAX][NMAX], inf;
int main()
{
long long i, j, k, t;
in>>n;
inf = numeric_limits<long long>::max();
for (i = 0;i <= n;i++)
in>>d[i];
for (i = 1;i <= n;i++)
best[i][i] = 0;
for (i = 1;i < n; i++)
best[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
for (t = 2;t < n;t++)
for (i = 1;i <= n - t;i++)
{
j = i + t;
best[i][j] = inf;
for (k = i;k < i + t;k++)
best[i][j] = Min(best[i][j], best[i][k] + best[k + 1][j] + d[i - 1] * d[k] * d[j]);
}
out<<best[1][n];
}