Pagini recente » Cod sursa (job #1676882) | Cod sursa (job #1508903) | Cod sursa (job #63127) | Cod sursa (job #2195685) | Cod sursa (job #648496)
Cod sursa(job #648496)
#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];
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;
}
if (i >= 2) {
d[i - 1][i] = a[i - 2] * a[i - 1] * a[i];
}
d[i][i] = 0;
}
for (int k = 2; k <= n - 1; ++k) {
for (int i = 1; i <= n - k; ++i) {
for (int j = i; j <= i + k - 1; ++j) {
d[i][i + k] = min(d[i][i + k], d[i][j] + d[j + 1][i + k] + a[i - 1] * a[j] * a[i + k]);
}
}
}
fout << d[1][n] << endl;
fin.close();
fout.close();
return 0;
}