Pagini recente » Cod sursa (job #1520859) | Cod sursa (job #1389464) | Cod sursa (job #1485241) | Cod sursa (job #2077623) | Cod sursa (job #649577)
Cod sursa(job #649577)
#include<cstdio>
#include<limits>
#define minim(a,b) a<b?a:b
using namespace std;
void read(),solve();
int n,i,D[510],j,k;
long long aux,M[510][510],INF;
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n+1;i++)scanf("%d",&D[i]);
}
void solve()
{
INF=numeric_limits<long long>::max();
for(i=n;i>=1;i--)
for(j=i;j<=n;j++)
{
M[i][j]=INF;
if(i==j){M[i][j]=0;continue;}
if(i==j-1){M[i][j]=D[i]*D[j]*D[j+1];continue;}
for(k=i;k<j;k++)
{
aux=M[i][k]+M[k+1][j]+D[i]*D[k+1]*D[j+1];
M[i][j]=minim(M[i][j],aux);
}
}
printf("%lld\n",M[1][n]);
}