Pagini recente » Cod sursa (job #3292667) | Cod sursa (job #1410397) | Cod sursa (job #1027353) | Cod sursa (job #2241132) | Cod sursa (job #677447)
Cod sursa(job #677447)
#include<stdio.h>
#define INF (1LL<<62)
FILE *fin=fopen("podm.in","r");
FILE *fout=fopen("podm.out","w");
long long d[505][505],val;
int l[510],c[510];
int n,i,j,k,diag;
int main(){
fscanf(fin,"%d",&n);
fscanf(fin,"%d %d",&l[1],&c[1]);
for(i=2;i<=n;i++){
l[i]=c[i-1];
fscanf(fin,"%d",&c[i]);
}
for(i=1,j=2; j<=n; i++, j++){
d[i][j]=(long long)l[i]*c[i]*c[j];
}
for(diag=3;diag<=n;diag++){
for(i=1,j=diag;j<=n;i++,j++){
d[i][j]=INF;
for(k=i;k<=j-1;k++){
val=d[i][k]+d[k+1][j]+ (long long)l[i]*c[k]*c[j];
if(val<d[i][j]){
d[i][j]=val;
}
}
}
}
fprintf(fout,"%lld",d[1][n]);
return 0;
}