Pagini recente » Cod sursa (job #2934288) | Cod sursa (job #2322143) | Cod sursa (job #1472011) | Diferente pentru implica-te/arhiva-educationala intre reviziile 199 si 198 | Cod sursa (job #1325559)
#include <iostream>
#include <cstdio>
#include <algorithm>
#define NMAX 505
#define inf 0x3f3f3f3f
using namespace std;
int d[NMAX], best[NMAX][NMAX], n;
void read()
{
scanf("%d\n", &n);
for (int i=0; i<=n; i++)
scanf("%d ", &d[i]);
}
void dyn()
{
for (int p=2; p<=n; p++){
for (int i=1; i<=n-p+1; i++){
int j = i + p - 1;
best[i][j] = inf;
for (int k=i; k<j; k++){
best[i][j] = min(best[i][j], best[i][k] + best[k+1][j] + d[i-1]*d[k]*d[j]);
}
}
}
printf("%d\n", best[1][n]);
}
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
read();
dyn();
return 0;
}