Pagini recente » Cod sursa (job #640869) | Cod sursa (job #235570) | Autentificare | Cod sursa (job #1916040) | Cod sursa (job #2024480)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 505
#define INF (1LL<<62)
int n, d[NMAX];
long long dp[NMAX][NMAX];
void read();
void dynamic();
int main() {
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
read();
dynamic();
printf("%lld", dp[1][n]);
return 0;
}
void read() {
scanf("%d ", &n);
for(int i = 0; i <= n; i++)
scanf("%d ", &d[i]);
}
void dynamic() {
for(int di = 1;di < n; di++)
{
for(int i = 1;i <= n - di;i++)
{
long long row, col;
row = i;
col = di + i;
if(row == col) break;
long long int minim=INF;
for(int k = row; k < col; k++)
{
long long int x=dp[row][k] + dp[k + 1][col] + d[row - 1] * d[k] * d[col];
if(x < minim)
minim = x;
}
dp[row][col] = minim;
}
}
}