Pagini recente » Cod sursa (job #2298987) | Cod sursa (job #3237550) | Cod sursa (job #2142922) | Cod sursa (job #2571551) | Cod sursa (job #3148735)
#include <fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
typedef long long ll;
const ll inf = 1000000000000000;
ll n, v[505], dp[505][505];
int main()
{
in >> n;
n++;
for(int i=1; i<=n; i++)
in >> v[i];
for(int i=1; i<n-1; i++) {
dp[i][i+2] = v[i] * v[i+1] * v[i+2];
}
for(int lg=3; lg<=n; lg++)
for(int i=1; i+lg-1<=n; i++) {
int j = i + lg - 1;
dp[i][j] = inf;
for(int k=i+1; k<=j; k++)
dp[i][j] = min(dp[i][j], v[i] * v[k] * v[j] + dp[i][k] + dp[k][j]);
}
out << dp[1][n];
return 0;
}