Pagini recente » Cod sursa (job #524041) | Cod sursa (job #1443157) | Cod sursa (job #645811) | Cod sursa (job #1935245) | Cod sursa (job #1101561)
#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-1;++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]);
fclose(f);
fclose(g);
return 0;
}