Pagini recente » Cod sursa (job #1210077) | Cod sursa (job #222611) | Cod sursa (job #905261) | Cod sursa (job #3147593) | Cod sursa (job #1101550)
#include <stdio.h>
#define INF 1000000000000000LL
#define MIN(a,b) a<b?a:b
typedef long long i64;
i64 bst[501][501];
unsigned int d[501],n,i,j,k,w,c;
int main(){
FILE *f=fopen("podm.in","r");
FILE *g=fopen("podm.out","w");
fscanf(f,"%d",&n);
for(i=0;i<=n;++i)
fscanf(f,"%d",&d[i]);
for(i=1;i<=n;++i)
bst[i][i]=0;
for(i=1;i<n;++i)
bst[i][i+1]=d[i-1]*d[i]*d[i+1];
for(w=2;w<=n;++w){
for(i=1;i<=n-w;++i)
j=i+w;
bst[i][j]=INF;
for(k=i;k<=j-1;++k)
bst[i][j]=MIN(bst[i][j],bst[i][k]+bst[k+1][j]+d[i-1]*d[k]*d[j]);
}
fprintf(g,"%lld\n",bst[1][n]);
return 0;
}