Pagini recente » Cod sursa (job #2510809) | Cod sursa (job #1090322) | Cod sursa (job #1069763) | Cod sursa (job #2437388) | Cod sursa (job #522706)
Cod sursa(job #522706)
#include<stdio.h>
#define Inf 1LL << 62
FILE*f=fopen("podm.in","r");
FILE*g=fopen("podm.out","w");
int i,N,j,d[512],k;
long long bst[512][512];
inline long long min(long long a,long long b){
if ( a < b )
return a;
return b;
}
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] = 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 ){
bst[i][i+k] = min(bst[i][i+k],bst[i][j] + bst[j+1][i+k] + d[i-1] * d[i+k] * d[j] );
}
}
}
fprintf(g,"%lld\n",bst[2][N+1]);
fclose(f);
fclose(f);
return 0;
}