Pagini recente » Cod sursa (job #2934474) | Cod sursa (job #1302873) | Cod sursa (job #1781816) | Cod sursa (job #820957) | Cod sursa (job #2250745)
#include <bits/stdc++.h>
using namespace std;
long long dp[501][501];
long long v[501];
int main()
{
ifstream fin ("podm.in");
ofstream fout ("podm.out");
int n;
fin >> n;
for (int i = 1; i <= n + 1; ++i) {
fin >> v[i];
}
for (int size = 2; size <= n; ++size) {
for (int start = 1; start + size - 1 <= n; ++start) {
dp[size][start] = 1000000000000000000LL;
int finish = start + size - 1;
if (size == 2) {
dp[size][start] = v[start] * v[finish] * v[finish + 1];
continue;
}
for (int midterm = start + 1; midterm <= finish; ++midterm) {
dp[size][start] = min (dp[size][start], dp[midterm - start][start] + dp[finish - midterm + 1][midterm] + v[start] * v[midterm] * v[finish + 1]);
}
}
}
fout << dp[n][1];
return 0;
}