Pagini recente » Cod sursa (job #2331250) | Cod sursa (job #243951) | Cod sursa (job #231447) | Cod sursa (job #2539941) | Cod sursa (job #1934748)
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
#include <unordered_map>
#include <set>
#include <vector>
#include <cstdio>
#include <string>
using namespace std;
#define ll long long
#define ull unsigned long long
/*------------------------------------------------------------------*/
ifstream f{"podm.in"};
ofstream q{"podm.out"};
int n;
unsigned long long mat[505][505];
int dim[505];
int main()
{
ios_base::sync_with_stdio(false) , cin.tie(nullptr) , cout.tie(nullptr);
f >> n;
for (int i = 0; i <= n; ++i) f >> dim[i];
for (int i = 1; i <= n - 1; ++i) mat[i][i + 1] = static_cast<ull>(1) * dim[i] * dim[i - 1] * dim[i + 1];
for (int d = 2; d <= n; ++d)
{
for (int i = 1; i <= n - d; ++i)
{
mat[i][i + d] = numeric_limits<ull>::max();
for (int k = i, rp = i + d; k <= rp; ++k)
{
mat[i][i + d] = min(mat[i][i + d], mat[i][k] + mat[k + 1][i + d] + dim[i - 1] * dim[k] * dim[i + d]);
}
}
}
q << mat[1][n];
f.close();
q.close();
return 0;
}