Pagini recente » Cod sursa (job #1212262) | Cod sursa (job #276921) | Cod sursa (job #1299032) | Cod sursa (job #1823183) | Cod sursa (job #468524)
Cod sursa(job #468524)
#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 (1<<9)
long long n,d[nmax];
long long m[nmax][nmax];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%lld", &n);
for (int 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;
}