Pagini recente » Cod sursa (job #1675102) | Cod sursa (job #1495875) | Cod sursa (job #3157804) | Cod sursa (job #2955533) | Cod sursa (job #3305737)
#include <bits/stdc++.h>
#define NMAX 500
#define ll long long
#define ull unsigned long long
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n;
int dim[NMAX + 2];
ll dp[NMAX + 2][NMAX + 2];
int main() {
ios::sync_with_stdio(false);
fin.tie(nullptr);
fout.tie(nullptr);
fin >> n;
for (int i = 0; i <= n; i++) {
fin >> dim[i];
}
for (int i = 1; i <= n - 1; i++) {
dp[i][i + 1] = 1LL * dim[i - 1] * dim[i] * dim[i + 1];
}
for (int lg = 2; lg <= n - 1; lg++) {
for (int i = 1; i <= n - lg; i++) {
int j = i + lg;
dp[i][j] = LLONG_MAX;
for (int k = i; k < j; k++) {
dp[i][j] = min(dp[i][j], 1LL * dp[i][k] + dp[k + 1][j] + 1LL * dim[i - 1] * dim[k] * dim[j]);
}
}
}
fout << dp[1][n];
return 0;
}