Pagini recente » Cod sursa (job #726498) | Cod sursa (job #574370) | Cod sursa (job #1205004) | Cod sursa (job #1961529) | Cod sursa (job #3253129)
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int NMAX = 502;
const int INF = 1e18;
int n,d[NMAX],dp[NMAX][NMAX];
ifstream fin("podm.in");
ofstream fout("podm.out");
template<typename T>
void minSelf(T &a, T b){
a = min(a, b);
}
signed main() {
fin >> n;
for(int i = 0; i < n+1; i++){
fin >> d[i];
}
for(int i = 1; i <= n; i++){
for(int j = i+1; j <= n; j++){
dp[i][j] = INF;
}
}
for(int i = 1; i < n; i++){
dp[i][i+1] = d[i-1] * d[i] * d[i+1];
}
for(int len = 2; len <= n; len++){
for(int i = 1; i <= n-len+1; i++){
int j = i+len-1;
for(int k = i; k < j; k++){
minSelf(dp[i][j], dp[i][k] + dp[k+1][j] + d[i-1] * d[j] * d[k]);
}
}
}
fout << dp[1][n];
return 0;
}