Pagini recente » Cod sursa (job #1217922) | Cod sursa (job #3183678) | Cod sursa (job #2510407) | Cod sursa (job #2187401) | Cod sursa (job #1251062)
#include <fstream>
#define Nmax 510
#define oo (1LL << 60)
using namespace std;
int N, A[Nmax];
long long DP[Nmax][Nmax];
void Solve() {
int i, j, k, Dif;
for(Dif = 1; Dif < N; Dif++)
for(i = 1; i + Dif <= N; i++) {
j = i + Dif;
DP[i][j] = oo;
for(k = i; k < j; k++)
DP[i][j] = min(DP[i][j], DP[i][k] + DP[k + 1][j] + A[i] * A[k + 1] * A[j + 1]);
}
}
void Read() {
ifstream in("podm.in");
in >> N;
for(int i = 1; i <= N + 1; i++)
in >> A[i];
in.close();
}
void Write() {
ofstream out("podm.out");
out << DP[1][N] << '\n';
out.close();
}
int main() {
Read();
Solve();
Write();
return 0;
}