Pagini recente » Cod sursa (job #2798635) | Cod sursa (job #1863805) | Cod sursa (job #2333919) | Cod sursa (job #878306) | Cod sursa (job #3030933)
#include <stdio.h>
#define fin "podm.in"
#define fout "podm.out"
#define LL long long
#define MAX 503
#define inf 666666666666666LL
#define min(x, y) (((x) < (y)) ? (x) : (y))
LL best[MAX][MAX];
int n, d[MAX];
void read() {
freopen(fin, "r", stdin);
scanf("%d", &n);
for(int i = 1; i <= n+1; ++i) scanf("%d", &d[i]);
}
void solve() {
int i,j,k;
LL nr;
freopen(fout, "w", stdout);
for (i=1; i<n; i++)
for (j=1; j<=n-i; j++)
{
nr=inf;
for (k=j; k<j+i; k++)
nr=min(nr,best[j][k]+best[k+1][j+i]+(LL)d[j]*d[k+1]*d[j+i+1]);
best[j][j+i]=nr;
}
printf("%lld\n", best[1][n]);
}
int main(int argc, char const *argv[])
{
read();
solve();
return 0;
}