Pagini recente » Cod sursa (job #557276) | Cod sursa (job #3000546) | Cod sursa (job #3248572) | Cod sursa (job #2861204) | Cod sursa (job #1077443)
#include<fstream>
#include<climits>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n, i, j, k, l;
long long aux, sum, dp[501][501], dim[501];
int main() {
fin >> n;
for(i = 0; i < n+1; i++) {
fin >> dim[i];
}
// pe diagonala principala avem deja 0 (cazul pt l = 1)
for(l = 2; l <= n; l++) {
for(i = 1; i <= n-l+1; i++) {
j = i + l - 1;
sum = LLONG_MAX;
for(k = i; k < j; k++) {
aux = dp[i][k] + dp[k+1][j] + dim[i-1] * dim[k] * dim[j];
if(aux < sum) {
sum = aux;
}
}
dp[i][j] = sum;
}
}
fout << dp[1][n];
return 0;
}