Pagini recente » Cod sursa (job #651335) | Cod sursa (job #199661) | Cod sursa (job #107348) | Cod sursa (job #393826) | Cod sursa (job #1022537)
#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()
{
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)
{
DP[i][j] = ((long long)1<<62);
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;
}