Pagini recente » Cod sursa (job #1343258) | Cod sursa (job #1781217) | Cod sursa (job #1015055) | Cod sursa (job #2026632) | Cod sursa (job #418916)
Cod sursa(job #418916)
#include <fstream>
using namespace std;
ifstream FIn("podm.in");
ofstream FOut("podm.out");
const long long NMax=(long long)1<<10;
const long long Mult=100000000000000LL;
long long D[505],PD[501][501],N;
void EXE(),IN(),OUT(),PD_GENERARE();
int main(){EXE();return 0;}
void EXE(){
IN();
PD_GENERARE();
OUT();
}
void IN(){
FIn>>N;
for(long long i=1;i<=N+1;FIn>>D[i++]);
}
void OUT(){
FOut<<PD[1][N]<<"\n";
}
void PD_GENERARE(){
for(long long i=1;i<N;PD[i][i]=0,PD[i][i+1]=D[i]*D[i+1]*D[i+2],++i);
for(long long i=2;i<N;++i){
for(long long j=1,minim;j<=N-i;++j){
PD[j][i+j]=Mult;
for(int k=j;k<=i+j-1;++k){
minim=PD[j][k]+PD[k+1][i+j]+D[j]*D[k+1]*D[i+j+1];
if(minim<PD[j][j+i]){
PD[j][j+i]=minim;
}
}
}
}
}