Pagini recente » Cod sursa (job #2815496) | Cod sursa (job #822650) | Cod sursa (job #1030930) | Cod sursa (job #1548363) | Cod sursa (job #432404)
Cod sursa(job #432404)
#include <cstdio>
#include <cstring>
#define INF 0x3f3f3f
#define nmax 510
#define ll long long
#define min(a ,b) ((a) < (b)? (a) : (b))
using namespace std;
ll bst [nmax][nmax], d [nmax];
int i, j, k, m,n;
int main ()
{
freopen ("podm.in", "r", stdin);
freopen ("podm.out", "w", stdout);
scanf ("%d\n", &n);
for (i = 0; i <= n; i++)
scanf ("%lld", &d [i]);
memset (bst, INF, sizeof (bst));
//debug (bst);
for (i = 0; i <= n; i++) bst [i][i] = 0;
for (i = 1; i < n; i++) bst [i][i + 1] = d [i - 1] * d [i] * d [i + 1];
for (k = 2; k < n; k++)
for (i = 1; i <= n - k; i++)
{
j = i + k;
for (m = i; m < j; m++)
if (bst [i][j] > bst [i][m] + bst [m + 1][j] + d [i - 1] * d [m] * d [j])
bst [i][j] = bst [i][m] + bst [m + 1][j] + d [i - 1] * d [m] * d [j];
}
printf ("%lld\n", bst [1][n]);
return 0;
}