Pagini recente » Cod sursa (job #2080943) | Cod sursa (job #1648749) | Istoria paginii runda/dornescu2 | Arhiva de probleme | Cod sursa (job #992714)
Cod sursa(job #992714)
#include <fstream>
#include <iostream>
using namespace std;
const int MAXN = 510;
const long long INF = (1LL << 62);
ifstream fin("podm.in");
ofstream fout("podm.out");
int N;
long long sir[MAXN];
long long dp[MAXN][MAXN];
long long solve (int st, int fn) {
if (dp[st][fn] != 0)
return dp[st][fn];
if (st == fn - 1) return 0;
dp[st][fn] = INF;
for (int i = st + 1; i < fn; ++i)
dp[st][fn] = min (dp[st][fn], sir[st] * sir[i] * sir[fn] + solve (st, i) + solve (i, fn));
return dp[st][fn];
}
int main() {
fin >> N;
for (int i = 1; i <= N + 1; ++i)
fin >> sir[i];
fout << solve (1, N + 1);
return 0;
}