Pagini recente » Cod sursa (job #1567884) | Cod sursa (job #152084) | Cod sursa (job #2016126) | Cod sursa (job #2135891) | Cod sursa (job #432882)
Cod sursa(job #432882)
#include <stdio.h>
#define Nmax 505
#define LL long long
#define INF 1000000000000000000LL // 10^18
LL d[Nmax];
LL a[Nmax][Nmax];
int i,j,k,n,lg;
inline LL Minim(LL x, LL y){
return x<y ? x:y;
}
int main(){
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&n);
for(i=0;i<=n;++i) scanf("%d",&d[i]);
for(i=1;i<=n;++i)
a[i][i+1]=d[i-1]*d[i]*d[i+1];
for(lg=2; lg<=n; ++lg)
for(i=1; i+lg-1<=n; ++i){
j=i+lg-1;
a[i][j]=INF;
for(k=i;k<j;++k)
a[i][j]=Minim(a[i][j],a[i][k]+a[k+1][j]+ d[i-1]*d[k]*d[j]);
}
printf("%lld\n",a[1][n]);
fclose(stdin); fclose(stdout);
return 0;
}