Pagini recente » Cod sursa (job #2368988) | Monitorul de evaluare | Cod sursa (job #2669960) | Cod sursa (job #2885594) | Cod sursa (job #3305084)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
#define int long long
int n, v[510], dp[503][503]; ///dp[i][j] = rasp pe [i, j]
signed main()
{
fin >> n;
for(int i=0; i<=n; i++) fin >> v[i];
for(int i=1; i<=n; i++) {
dp[i][i] = 0;
if(i < n) dp[i][i + 1] = v[i - 1] * v[i] * v[i + 1];
}
for(int lung=2; lung<=n; lung++) {
for(int i=1, j=i+lung-1; j<=n; i++, j++) {
dp[i][j] = 1e15;
for(int k=i; k<j; k++) dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + v[i - 1] * v[k] * v[j]);
}
}
fout << dp[1][n];
return 0;
}