Pagini recente » Cod sursa (job #1709030) | Cod sursa (job #1929261) | Cod sursa (job #1050245) | Cod sursa (job #1118950) | Cod sursa (job #1869095)
#include <fstream>
#include <vector>
using namespace std;
typedef long long int64;
const int64 kInfinite = (1LL << 50);
int main()
{
ifstream fin("podm.in");
ofstream fout("podm.out");
int n;
fin >> n;
vector<int> dim(n + 1);
for (int i = 0; i <= n; ++i) {
fin >> dim[i];
}
vector<vector<int64>> d(n, vector<int64>(n, kInfinite));
for (int i = 0; i < n; ++i) {
d[i][i] = 0;
}
for (int len = 2; len <= n; ++len) {
for (int i = 0; i <= n - len; ++i) {
int lim = i + len - 1;
for (int j = i; j < lim; ++j) {
d[i][lim] = min(d[i][lim], d[i][j] + d[j + 1][lim] +
dim[i] * dim[j + 1] * dim[lim + 1]);
}
}
}
fout << d[0].back() << "\n";
return 0;
}