Pagini recente » Cod sursa (job #2340549) | Cod sursa (job #2129181) | Cod sursa (job #867092) | Cod sursa (job #360972) | Cod sursa (job #416424)
Cod sursa(job #416424)
#include <fstream>
using namespace std;
ifstream FIn("podm.in");
ofstream FOut("podm.out");
const long long MULT=100000000000000LL;
const long long NMax=(long long)1<<10;
long long N,PD[NMax][NMax],D[NMax];
inline long long MIN(long long a,long long b){
return a<b?a:b;
}
void IN(),OUT(),EXE();
int main(){EXE();return 0;}
void EXE(){
IN();
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;j<=N-i;++j){
PD[j][j+i]=MULT;
for(long long k=j,minim;k<=i+j-1;++k){
minim=PD[j][k]+PD[k+1][i+j]+D[j]*D[k+1]*D[i+j+1];
PD[j][j+i]=MIN(minim,PD[j][j+i]);
}
}
}
OUT();
}
void IN(){
FIn>>N;
for(long long i=1;i<=N+1;FIn>>D[i++]);
}
void OUT(){
FOut<<PD[1][N];
}