Pagini recente » Cod sursa (job #1919754) | Cod sursa (job #401171) | Cod sursa (job #1455988) | Cod sursa (job #449955) | Cod sursa (job #3180686)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
const int nmax = 505;
const int inf = 1ll * 1e9 * 1e9;
int n;
int dp[nmax][nmax];
pair<int,int> v[nmax];
int combine(int i, int k, int j)
{
pair<int,int> a = {v[i].first,v[k].second};
pair<int,int> b = {v[k+1].first,v[j].second};
return a.first * a.second * b.second;
}
signed main()
{
fin>>n;
fin>>v[1].first;
for(int i=1; i<=n; i++)
{
int a; fin>>a;
v[i].second = a;
v[i+1].first = a;
}
for(int l = 2; l<=n; l++)
{
for(int i=1; i+l-1<=n; i++)
{
int j = i+l-1;
dp[i][j] = inf;
for(int k = i; k<j; k++)
{
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + combine(i,k,j));
}
}
}
fout<<dp[1][n];
return 0;
}