Pagini recente » Cod sursa (job #2632255) | Cod sursa (job #1465370) | Cod sursa (job #2097354) | Cod sursa (job #1854696) | Cod sursa (job #1355804)
#include <fstream>
#define NMAX 102
#define INF 10000000000
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n;
int d[NMAX];
int nrmin[NMAX][NMAX];
void init();
void pd();
int main(){
init();
pd();
fout<<nrmin[1][n]<<'\n';
return 0;
}
void init(){
fin>>n;
int i;
for(i = 0; i<= n; ++i)fin>>d[i];
}
void pd(){
int lg, i, j, k, minim, kmin;
for(i = 1; i < n; ++i) nrmin[i][i+1] = d[i-1]*d[i]*d[i+1];
for(lg = 3; lg <= n; ++lg){
for(i = 1; i <= n-lg+1; ++i){
j = i+lg-1;
minim = INF;
for(k = i; k < j; ++k){
if(minim > nrmin[i][k] + nrmin[k+1][j] + d[i-1]*d[k]*d[j]){
minim = nrmin[i][k] + nrmin[k+1][j] + d[i-1]*d[k]*d[j];
kmin = k;
}
}
nrmin[i][j] = minim;
nrmin[j][i] = kmin;
}
}
}