Pagini recente » Cod sursa (job #2125151) | Cod sursa (job #954616) | Cod sursa (job #1906908) | Cod sursa (job #2751388) | Cod sursa (job #1318155)
#include<fstream>
#define INF 9223372036854775807LL
using namespace std;
typedef int64_t var;
ifstream fin("podm.in");
ofstream fout("podm.out");
var M[501][501], D[501];
bool DA[501][501];
var n;
inline var m(const var i, const var j) {
if(DA[i][j]) return M[i][j];
var MIN = INF;
for(var k=i; k<j; ++k) {
MIN = min(MIN, m(i, k) + m(k+1, j) + D[i-1]*D[k]*D[j]);
}
M[i][j] = MIN;
DA[i][j] = 1;
return M[i][j];
}
int main() {
fin>>n;
//fout<<INF;
for(var i=0; i<=n; i++) {
fin>>D[i];
}
for(var i=1; i<=n; i++) {
M[i][i+1] = D[i-1]*D[i]*D[i+1];
DA[i][i+1] = 1;
DA[i][i] = 1;
}
fout<<m(1, n);
return 0;
}