Pagini recente » Cod sursa (job #167027) | Clasament autumn2007-runda2 | Istoria paginii runda/concurs_11_12_02_28/clasament | tema_lee | Cod sursa (job #1219275)
#include <cstdio>
#include <algorithm>
#define INF 1LL*9000000000000000
using namespace std;
int N;
long long DP[505][505];
long long v[505];
void read( void )
{
scanf("%d",&N);
for(int i = 1; i <= N + 1; ++i)
scanf("%lld", &v[i]);
for(int i = 0; i <= N + 1; ++i)
for(int j = 0; j <= N + 1; ++j)
if(i != j)
DP[i][j] = INF;
}
long long minim(long long a,long long b)
{
if(a < b)
return a;
return b;
}
void solve()
{
int i,j,k;
for(int d = 2; d <= N; ++d)
{
i = 1;
for(j = d; j <= N; ++j,++i)
for(k = i ; k < j; ++k)
DP[i][j] = minim(DP[i][j], DP[i][k] + DP[k+1][j] + v[i]*v[k+1]*v[j+1]);
}
printf("%lld\n",DP[1][N]);
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
read();
solve();
return 0;
}