Pagini recente » Cod sursa (job #3203003) | Cod sursa (job #1331114) | Cod sursa (job #1982355) | Cod sursa (job #225067) | Cod sursa (job #468525)
Cod sursa(job #468525)
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
#define file_in "podm.in"
#define file_out "podm.out"
#define nmax (511)
long long n,d[nmax];
long long m[nmax][nmax];
void citire()
{
long long i;
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%lld", &n);
for (i=1;i<=n+1;++i)
scanf("%lld", &d[i]);
}
#define inf 10000000000000000LL
void solve()
{
long long h,i,j,minim,k,kmin;
for (h=1;h<n;++h)
for (i=1;i<n;++i)
{
j=i+h;
minim=inf;
for (k=i;k<j;++k)
if (minim>m[i][k]+m[k+1][j]+d[i]*d[k+1]*d[j+1])
{
minim=m[i][k]+m[k+1][j]+d[i]*d[k+1]*d[j+1];
kmin=k;
}
m[i][j]=minim;
m[j][i]=kmin;
}
printf("%lld\n", m[1][n]);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}