Pagini recente » Cod sursa (job #423683) | Cod sursa (job #833400) | Cod sursa (job #364303) | Cod sursa (job #2870227) | Cod sursa (job #3241788)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
const int inf=1e9+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]=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;
}