Pagini recente » Cod sursa (job #611467) | Cod sursa (job #10905) | Cod sursa (job #3205297) | Cod sursa (job #3241101) | Cod sursa (job #371901)
Cod sursa(job #371901)
#include <cstdio>
#include <algorithm>
using namespace std;
#define Nmax 503
int n, i, j, k, l;
long long d[Nmax], a[Nmax][Nmax];
void podm () {
for (i = 1; i <= n; i++)
for (j = i+1; j <= n; j++)
a[i][j] = (long long)1 << 60;
for (i = 1; i < n; i++)
a[i][i+1] = d[i] * d[i+1] * d[i+2];
for (k = 3; k <= n; k++)
for (i = 1; i <= n; i++) {
j = i + k - 1;
if (j > n) j = n;
for (l = i + 1; l <= j; l++)
a[i][j] = min (a[i][j], a[i][l-1] + a[l][j] + d[i] * d[l] * d[j+1]);
}
}
int main () {
FILE *f = fopen ("podm.in", "r");
FILE *g = fopen ("podm.out", "w");
fscanf (f, "%d", &n);
for (i = 1; i <= n + 1; i++)
fscanf (f, "%lld", &d[i]);
podm ();
fprintf (g, "%lld", a[1][n]);
fclose (f);
fclose (g);
return 0;
}