Pagini recente » Cod sursa (job #2459932) | Cod sursa (job #2260645) | Cod sursa (job #1000139) | Cod sursa (job #341876) | Cod sursa (job #764536)
Cod sursa(job #764536)
#include <stdio.h>
#include <limits.h>
using namespace std;
int n;
long long v[505];
long long a[505][505];
void citeste() {
scanf("%d", &n);
for (int i = 0; i <= n; i++) {
scanf("%lld", &v[i]);
}
}
void rezolva() {
long long min, val;
for (int i = 1; i <= n; i++) {
a[i][i] = 0;
}
for (int diag = 2; diag <= n; diag++) {
for (int x = 1; x <= n - diag + 1; x++) {
int y = diag - 1 + x;
min = LLONG_MAX;
for (int k = x; k < y; k++) {
val = a[x][k] + a[k+1][y] + v[x-1] * v[k] * v[y];
if (val < min) {
min = val;
}
}
a[x][y] = min;
}
}
}
void afisare() {
printf("%lld\n", a[1][n]);
}
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
citeste();
rezolva();
afisare();
return 0;
}