Pagini recente » Cod sursa (job #742642) | Cod sursa (job #1764721) | Cod sursa (job #2137307) | Cod sursa (job #1838449) | Cod sursa (job #795260)
Cod sursa(job #795260)
#include <stdio.h>
long d[505];
long long a[505][505];
int n;
long long min(long long a,long long b){return a<b?a:b;}
int main(){
const long long max=100000000000000000LL;
long long minV;
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<=n;i++){scanf("%d",&d[i]);}
for(int i=1;i<=n;i++) a[i][i]=0;
for(int i=1;i<=n-1;i++) a[i][i+1]=d[i-1]*d[i]*d[i+1];
for(int i=n-2;i>=1;i--){
for(int dd=2;i+dd<=n;dd++){
minV=max;
for(int j=0;j<dd;j++){
minV=min(minV,
a[i][i+j]+a[i+j+1][i+dd] +
d[i-1]*d[i+j]*d[i+dd] );
}
a[i][i+dd]=minV;
}
}
printf("%lld\n",a[1][n]);
return 0;
}