Pagini recente » Cod sursa (job #2396821) | Cod sursa (job #1522260) | Cod sursa (job #2128477) | Cod sursa (job #1927256) | Cod sursa (job #3288983)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
const ll inf = 1e18;
ll n,dp[505][505],d[505];
ll i,j,k;
ll a,b;
ll solve(ll L,ll R) {
if (dp[L][R] != -1)
return dp[L][R];
dp[L][R] = inf;
for (int k = L+1;k < R;k++)
dp[L][R] = min(dp[L][R],solve(L,k) + solve(k,R) + d[L]*d[k]*d[R]);
return dp[L][R];
}
int main()
{
fin >> n;
for (i = 1;i <= n+1;i++)
fin >> d[i];
for (i = 1;i <= n+1;i++)
for (j = 1;j <= n+1;j++)
dp[i][j] = -1;
for (i = 1;i <= n;i++)
dp[i][i+1] = 0;
fout << solve(1,n+1);
return 0;
}