Pagini recente » Cod sursa (job #2870096) | Cod sursa (job #1527477) | Cod sursa (job #26242) | Cod sursa (job #3196988) | Cod sursa (job #2142164)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
#define inf 2e9
#define lim 510
long long n,i,dif,j,k;
long long d[lim], dp[lim][lim];
int main()
{
fin>>n;
for (i=0; i<=n; i++) fin>>d[i];
for (i=1; i<n; i++) dp[i][i+1] = d[i-1]*d[i]*d[i+1];
for (dif=2; dif<=n-1; dif++)
for (i=1; i<=n-dif; i++)
{
j = i+dif;
dp[i][j]=inf;
for (k=i; k<j; k++)
dp[i][j] = min (dp[i][j], dp[i][k] + dp[k+1][j] + d[i-1]*d[k]*d[j]);
}
fout<<dp[1][n];
fout.close();
return 0;
}