Pagini recente » Cod sursa (job #2837858) | Cod sursa (job #1383851) | Cod sursa (job #767058) | Cod sursa (job #74707) | Cod sursa (job #1770893)
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 505;
const long long int MAX = 1LL << 61;
long long int d[N][N];
long long int a[N];
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
int n, i, j, k;
long long int x, val = 0;
scanf("%d", &n);
for (i = 0;i <= n; ++i){
scanf("%lld",&x);
a[i] = x;
}
for (i = 2;i <= n; ++i){
for (j = i - 2;0 <= j; --j){
d[j][i] = MAX;
}
}
for (j = 1;j <= n; ++j){
for (i = j - 1;0 <= i; --i){
for (k = i + 1;k < j; ++k){
val = d[i][k] + d[k][j] + a[j] * a[k] * a[i];
if(val < d[i][j]){
d[i][j] = val;
}
}
}
}
printf("%lld\n", d[0][n]);
return 0;
}