Pagini recente » Cod sursa (job #420250) | Cod sursa (job #2520286) | Cod sursa (job #186106) | Cod sursa (job #1508335) | Cod sursa (job #791101)
Cod sursa(job #791101)
#include <fstream>
#define INF (1LL << 62)
#define MAX 512
using namespace std;
long long dp[MAX][MAX], d[MAX];
int n;
int main()
{
ifstream in("podm.in");
in>>n;
for(int i = 0; i <= n; i++) in>>d[i];
in.close();
for(int i = 1; i <= n; i++)
{
dp[i][i] = 0;
dp[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
}
for(int i = 2; i < n; i++)
for(int j = 1; j <= n - i; j++)
{
int h = j + i;
dp[j][h] = INF;
for(int k = j; k < h; k++)
dp[j][h] = min(dp[j][h], dp[j][k] + dp[k + 1][h] + d[j - 1] * d[k] * d[h]);
}
ofstream out("podm.out");
out<<dp[1][n]; out.close();
return 0;
}