Pagini recente » Cod sursa (job #1696078) | Cod sursa (job #2055803) | Cod sursa (job #1118282) | Cod sursa (job #1889669) | Cod sursa (job #654323)
Cod sursa(job #654323)
#include <fstream>
#define LL long long
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
static inline LL MIN(LL A,LL B) { return A < B ? A : B;};
const LL INF = 10000000000000LL;
LL dp[512][512] , d[512];
int N;
int main()
{
fin>>N;
for(int i = 0;i<=N;++i)
fin>>d[i];
for(int i = 1;i<=N;++i) dp[i][i] = 0;
for(int i = 1;i<N;++i)
dp[i][i + 1] = d[i-1] * d[i] * d[i + 1];
for(int L = 2;L < N;++L)
for(int i = 1;i<=N - L;++i)
{
int j = i + L;
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];
return 0;
}