Pagini recente » Cod sursa (job #1332527) | Cod sursa (job #960296) | Cod sursa (job #2114794) | Cod sursa (job #453504) | Cod sursa (job #2176462)
#include <fstream>
long int solution(int n, const int d[]) {
int i, j, k;
long int m[n + 1][n + 1];
for (i = 1; i <= n; ++i) {
m[i][i] = 0;
}
for (j = 1; j < n; ++j) {
for (i = 1; i <= n - j; ++i) {
m[i][i + j] = m[i][i] + m[i + 1][i + j] + d[i - 1] * d[i] * d[i + j];
for (k = 1; k < j; ++k) {
m[i][i + j] = std::min(m[i][i + k] + m[i + k + 1][i + j] + d[i - 1] * d[i + k] * d[i + j], m[i][i + j]);
}
}
}
return m[1][n];
}
int main() {
std::ifstream in("podm.in");
std::ofstream out("podm.out");
int n;
in >> n;
int d[n + 1];
for (int i = 0; i <= n; ++i) {
in >> d[i];
}
out << solution(n, d);
in.close();
out.close();
return 0;
}