Pagini recente » Cod sursa (job #2776034) | Cod sursa (job #275452) | Cod sursa (job #2582539) | Cod sursa (job #2128550) | Cod sursa (job #648490)
Cod sursa(job #648490)
#include <iostream>
#include <fstream>
using namespace std;
fstream fin("podm.in", ios::in);
fstream fout("podm.out", ios::out);
#define MAXN 550
#define INF 0x3f3f3f3f
typedef long long int64;
int n;
int64 d[MAXN][MAXN], a[MAXN];
int64 dyn(int i, int j)
{
if (d[i][j] != INF) {
return d[i][j];
}
if (i == j) {
return (d[i][j] = 0);
}
if (i + 1 == j) {
return (d[i][j] = a[i - 1] * a[i] * a[i + 1]);
}
for (int k = i; k < j; ++k) {
d[i][j] = min(d[i][j], dyn(i, k) + dyn(k + 1, j) + a[i - 1] * a[k] * a[j]);
}
return d[i][j];
}
int main()
{
fin >> n;
for (int i = 0; i <= n; ++i) {
fin >> a[i];
for (int j = 1; j <= n; ++j) {
d[i][j] = INF;
}
}
fout << dyn(1, n) << endl;
fin.close();
fout.close();
return 0;
}