Pagini recente » Cod sursa (job #1347162) | Cod sursa (job #148409) | Cod sursa (job #1212472) | Cod sursa (job #2907099) | Cod sursa (job #1380228)
#include<fstream>
#include<cstring>
#define inf 0x3f3f3f3f3f3f3f3f
#define Nmax 505
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
long long D[Nmax][Nmax];
int main()
{
int N, V[Nmax];
in >> N;
memset(D, inf, sizeof(D));
for (int i = 0; i <= N; i++)
in >> V[i];
for (int i = 1; i <= N; i++)
{
D[i][i] = 0;
D[i][i + 1] = (long long) V[i - 1] * V[i] * V[i + 1];
}
for (int k = 2; k <= N; k++)
{
for (int i = 1; i <= N; i++)
for (int j = i; j <= i + k - 1 && i + k <= N; j++)
D[i][i + k] = min(D[i][i + k], D[i][j] + D[j + 1][i + k] + (long long) V[i - 1] * V[j] * V[i + k]);
}
out << D[1][N];
}