Pagini recente » Cod sursa (job #764412) | Borderou de evaluare (job #1549789) | Cod sursa (job #2392043) | Cod sursa (job #1443166) | Cod sursa (job #3347004)
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream cin("podm.in");
ofstream cout("podm.out");
#define oo LONG_LONG_MAX;
const int nmax=500;
int n;
vector<pair<int,int>> v(nmax+5);
long long int dp[nmax+5][nmax+5];
int main()
{
cin>>n;
cin>>v[1].first>>v[1].second;
for(int i=3;i<=n+1;i++)
{
cin>>v[i-1].second;
v[i-1].first=v[i-2].second;
}
for(int len=2;len<=n;len++)
{
for(int i=1;i<=n-len+1;i++)
{
int j=i+len-1;
dp[i][j]=oo;
for(int k=i;k<j;k++)
{
long long int cost=1LL*(v[i].first)*(v[k].second)*(v[j].second);
dp[i][j]=min(dp[i][j], dp[i][k]+dp[k+1][j]+cost);
}
}
}
cout<<dp[1][n];
return 0;
}