Pagini recente » Cod sursa (job #776578) | Cod sursa (job #2629358) | Cod sursa (job #703875) | Cod sursa (job #360296) | Cod sursa (job #2376767)
#include <bits/stdc++.h>
#define llg long long
#define MAXN 505
#define INF 4000000000000000005
llg N, Dimm[MAXN];
llg DP[MAXN][MAXN];
void Dynamic() {
for (llg len=2, i, j, k; len<=N; ++len)
for (i=1, j=len; j<=N; ++i, ++j) {
DP[i][j] = INF;
for (k=i; k<j; ++k)
DP[i][j] = std::min(DP[i][j], DP[i][k] + DP[k+1][j] + Dimm[i-1]*Dimm[k]*Dimm[j]);
}
}
std::ifstream In ("podm.in");
std::ofstream Out("podm.out");
void Citire() {
In >> N;
for (llg i=0; i<=N; ++i)
In >> Dimm[i];
}
void Rezolvare() {
Dynamic();
Out << DP[1][N] << '\n';
}
int main()
{
Citire();
Rezolvare();
return 0;
}