Pagini recente » Cod sursa (job #2734217) | Cod sursa (job #2999227) | Cod sursa (job #3197286) | Cod sursa (job #690357) | Cod sursa (job #2142159)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
#define inf 2e9
#define lim 510
int n;
int d[lim], dp[lim][lim];
int main()
{
fin>>n;
for (int i=0; i<=n; i++) fin>>d[i];
for (int i=1; i<n; i++) dp[i][i+1] = d[i-1]*d[i]*d[i+1];
int j;
for (int dif=2; dif<=n-1; dif++)
for (int i=1; i<=n-dif; i++)
{
j = i+dif;
dp[i][j]=inf;
for (int 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;
}