Pagini recente » Cod sursa (job #634504) | Cod sursa (job #2999756) | Cod sursa (job #2893324) | Cod sursa (job #1698824) | Cod sursa (job #2041398)
#define DM 505
#define inf 10000000000000000
#include <climits>
#include <fstream>
using namespace std;
ifstream fi ("podm.in");
ofstream fo ("podm.out");
int n, v[DM];
long long dp[DM][DM];
int main()
{
fi >> n;
for (int i = 0; i <= n; ++i)
fi >> v[i];
for (int i = 1; i <= n; ++i)
dp[i][i] = 0, dp[i][i+1] = v[i-1]*v[i]*v[i+1];
for (int i = 2; i <= n; ++i)
for (int j = 1; j <= n - i; ++j)
{
dp[j][j+i] = inf;
for (int k = 0; k < j + i; ++k)
dp[j][j+i] = min(dp[j][i+j], dp[j][k] + dp[k+1][j+i] + v[j-1]*v[k]*v[j+i]);
}
fo << dp[1][n];
return 0;
}