Pagini recente » Cod sursa (job #1309435) | Cod sursa (job #2453834) | Cod sursa (job #1490853) | Cod sursa (job #1079225) | Cod sursa (job #2477268)
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
const int NMAX=504;
long long n,v[NMAX];
long long dp[NMAX][NMAX];
long long solve(int, int);
int main(){
fin>>n;
++n;
for(int i=1;i<=n;++i)
fin>>v[i];
fout<<solve(1,n);
return 0;
}
long long solve(int l, int r){
if(r-l==1)
return 0;
if(dp[l][r])
return dp[l][r];
if(r-l==2)
return v[l]*v[l+1]*v[r];
dp[l][r]=1e18;
for(int i=l+1;i<r;++i){
dp[l][r]=min(dp[l][r], solve(l,i) + solve(i,r) + v[l]*v[i]*v[r]);
}
return dp[l][r];
}