Pagini recente » Cod sursa (job #2094903) | Borderou de evaluare (job #2755958) | Borderou de evaluare (job #2576352) | Borderou de evaluare (job #1010394) | Cod sursa (job #371205)
Cod sursa(job #371205)
#include<cstdio>
using namespace std;
#define MAX_N 512
#define Inf 100000000000000000LL
#define ll long long
ll bst[MAX_N][MAX_N];
ll d[MAX_N];
int N;
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&N);
int i,j,k,lg;
ll tmp;
for(i=1;i<=N+1;++i) scanf("%lld",&d[i]);
for(i=1;i<=N;++i) bst[i][i] = 0;
for(lg = 2; lg <= N; ++lg)
{
for(i=1; i + lg - 1 <= N; ++i)
{
j = lg + i - 1;
bst[i][j] = Inf;
for(k = i; k <= j; ++k)
{
tmp = bst[i][k-1] + bst[k][j] + d[i] * d[k] * d[j+1];
if(tmp < bst[i][j] ) bst[i][j] = tmp;
}
}
}
printf("%lld\n",bst[1][N]);
return 0;
}