Pagini recente » Cod sursa (job #2223633) | Cod sursa (job #3237566) | Cod sursa (job #1022791) | Cod sursa (job #1084630) | Cod sursa (job #2662758)
#include <bits/stdc++.h>
#include <climits>
#include <algorithm>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long n,d[10005],dp[502][502];
void read()
{
fin>>n;
for(int i=0; i<=n; i++)
fin>>d[i];
}
long long multip_dp(int i,int j)
{
long long mn=LLONG_MAX;
for(int k=i;k<j;k++)
mn=min(mn,dp[i][k]+dp[k+1][j]+d[i]*d[k+1]*d[j+1]);
return mn;
}
void diagonala(int di,int dj)
{
for(int i=di,j=dj;i<n,j<n;i++,j++)
{
long long result=multip_dp(i,j);
dp[i][j]=(result==LLONG_MAX?0:result);
}
}
int main()
{
read();
for(int i=0;i<n;i++)
diagonala(0,i);
fout<<dp[0][n-1];
return 0;
}