Pagini recente » Cod sursa (job #1408543) | Cod sursa (job #1828317) | Cod sursa (job #1828327) | Cod sursa (job #1066963) | Cod sursa (job #3322067)
#include <fstream>
using namespace std;
ifstream cin("podm.in")
ofstream cout("podm.out");
typedef long long ll;
const ll mxN = 501, INF = 2e9;
ll v[mxN], dp[mxN][mxN];
int main()
{
int n ;
cin >> n ;
for(int i = 1;i <= n + 1;i++)
cin >> v[i];
for(int i = 1;i<=n;i++)
for(int j = 1;j<=n;j++)
if(i!=j) dp[i][j] = INF;
for(int i = 1;i<n;i++)
dp[i][i+1] = v[i] * v[i+1] * v[i+2];
for(int len = 3;len<=n;len++)
for(int r = len;r <= n;r++)
{
int l = r - len + 1;
for(int k = l;k<r;k++)
dp[l][r] = min(dp[l][r], dp[l][k] + dp[k+1][r] + v[l] * v[k+1] * v[r+1]);
}
cout << dp[1][n] << '\n';
return 0;
}