Pagini recente » Cod sursa (job #1037123) | Cod sursa (job #1771192) | Cod sursa (job #1591539) | Cod sursa (job #1174948) | Cod sursa (job #3241792)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
const long int inf=1e17+7;
long long dp[503][503];
int main()
{
int n, i, k, l, v[503];
f>> n; n++;
for(i=1; i<=n; i++){
f>> v[i];
}
for(i=1; i<=n; i++){
for(k=1; k<=n; k++){
dp[i][k]=inf;
}
}
for(i=1; i<=n; i++){
dp[i][i]=0; dp[i][i+1]=0;
}
for(i=1; i<=n-2; i++){
dp[i][i+2]=1LL*v[i]*v[i+1]*v[i+2];
}
for(l=3; l<=n; l++){
for(i=1; i<=n-l+1; i++){
for(k=i+1; k<i+l-1; k++){
dp[i][i+l-1]=min(dp[i][i+l-1], dp[i][k]+dp[k][i+l-1]+1LL*v[i]*v[k]*v[i+l-1]);
}
}
}
g<< dp[1][n];
return 0;
}