Pagini recente » Cod sursa (job #3194707) | Cod sursa (job #1382547) | Cod sursa (job #2604942) | Cod sursa (job #1987509) | Cod sursa (job #1019209)
#include <cstdio>
#include <memory.h>
#define Nmax 505
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
LL s[Nmax],DP[Nmax][Nmax];
int N;
LL mini (LL a ,LL b)
{
if(a<b)return a;
return b;
}
void read()
{
memset(DP,INF,sizeof(DP));
scanf("%d",&N);
for(int i = 0; i <= N; ++i)
scanf("%lld",&s[i]);
}
void solve()
{
for(int i = 1; i <= N ; ++i)
DP[i][i] = 0;
int i ,j , di, k;
for(di = 2; di <= N; ++di)
for(i = 1 , j = di ; j <= N ; ++j,++i)
for( k = i ; k <= j; ++k)
DP[i][j] = mini( DP[i][j] ,s[i-1]*s[k]*s[j] + DP[i][k] + DP[k+1][j] );
printf("%lld",DP[1][N]);
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
read();
solve();
return 0;
}