Pagini recente » Cod sursa (job #3140711) | Cod sursa (job #992762) | Cod sursa (job #277021) | Cod sursa (job #918773) | Cod sursa (job #2593499)
#include <iostream>
#include <fstream>
#include <vector>
#include <limits>
using namespace std;
vector<vector<long long>> DP;
vector<long long> dim;
int main()
{
ifstream fin("podm.in");
ofstream fout("podm.out");
fin.sync_with_stdio(false);
fin.tie(0);
int N;
fin >> N;
DP.resize(N);
fill(DP.begin(),
DP.end(),
vector<long long>(N, numeric_limits<long long>::max() / 4));
dim.resize(N + 1);
for (int i = 0; i <= N; ++i) {
fin >> dim[i];
}
for (int i = 0; i < N; ++i)
DP[i][i] = 0;
for (int i = N - 2; i >= 0; --i)
for (int j = i + 1; j < N; ++j)
for (int k = i; k < j; ++k)
DP[i][j] = min(DP[i][j], DP[i][k] + DP[k+1][j] + dim[i]*dim[k+1]*dim[j+1]);
fout << DP[0][N-1] << "\n";
return 0;
}