Pagini recente » Cod sursa (job #778963) | Cod sursa (job #259766) | Cod sursa (job #1373158) | Cod sursa (job #1761350) | Cod sursa (job #823964)
Cod sursa(job #823964)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("podm.in");
ofstream out ("podm.out");
typedef long long LL;
const LL INF = 1LL << 60 - 1;
const int MAXN = 505;
int A[MAXN];
LL Best[MAXN][MAXN];
inline LL _min (LL A, LL B)
{
if (A < B)
return A;
return B;
}
int main ()
{
int N, i, j, k, x;
in >> N;
for (i = 0; i <= N; i ++)
in >> A[i];
for (i = 1; i < N; i ++)
Best[i][i + 1] = A[i - 1] * A[i] * A[i + 1];
for (i = 2; i < N; i ++)
for (j = 1; j <= N - i; j ++){
x = i + j;
Best[j][x] = INF;
for (k = j; k < x; k ++)
Best[j][x] = _min (Best[j][x], Best[j][k] + A[j - 1] * A[x] * A[k]);
}
out << Best[1][N];
return 0;
}