Pagini recente » Cod sursa (job #1905600) | Cod sursa (job #439377) | Cod sursa (job #729072) | Cod sursa (job #518296) | Cod sursa (job #3180688)
#include <bits/stdc++.h>
#ifdef LOCAL
#define in cin
#define out cout
#endif
#define int int64_t
using namespace std;
#ifndef LOCAL
ifstream in("podm.in");
ofstream out("podm.out");
#endif
const int nmax = 505;
int dp[nmax][nmax];
pair<int,int> v[nmax];
int32_t main()
{
int n;in>>n;
int a,b;in>>b;
for(int i=1;i<=n;i++)
{
a=b;
in>>b;
v[i]={a,b};
}
for(int i=1;i<n;i++)//marimea
{
for(int j=1;j+i<=n;j++)
{
dp[j][j+i]=2e9;
for(int k=j;k<j+i;k++)
{
//cerr<<j<<' '<<j+i<<'\n';
//cerr<<j<<' '<<k<<' '<<k+1<<' '<<j+i<<'\n';
dp[j][j+i]=min(dp[j][j+i],dp[j][k]+dp[k+1][j+i]+(v[j].first*v[k+1].first*v[j+i].second));
}
}
}
cout<<dp[1][n];
}