Pagini recente » Cod sursa (job #2549764) | Cod sursa (job #1890885) | Cod sursa (job #2973508) | Cod sursa (job #168975) | Cod sursa (job #524029)
Cod sursa(job #524029)
#include<stdio.h>
FILE*f=fopen("podm.in","r");
FILE*g=fopen("podm.out","w");
int i,N,j,d[502],k;
long long bst[502][502],aux;
long long Inf = 1LL << 62;
int main () {
fscanf(f,"%d",&N);
for ( i = 1 ; i <= N + 1 ; ++i ){
fscanf(f,"%d",&d[i]);
}
for ( i = 2 ; i <= N ; ++i ){
bst[i][i+1] = 1LL * d[i-1] * d[i] * d[i+1];
}
for ( k = 2 ; k < N ; ++k ){
for ( i = 2 ; i + k <= N + 1; ++i ){
bst[i][i+k] = Inf;
for ( j = i ; j < i + k ; ++j ){
aux = bst[i][j] + bst[j+1][i+k] + d[i-1] * d[i+k] * d[j] ;
if ( bst[i][i+k] > aux )
bst[i][i+k] = aux;
}
}
}
fprintf(g,"%lld\n",bst[2][N+1]);
fclose(f);
fclose(g);
return 0;
}