Pagini recente » Cod sursa (job #3198373) | Cod sursa (job #2836959) | Cod sursa (job #3267378) | Cod sursa (job #2179199) | Cod sursa (job #2379855)
#include <fstream>
using namespace std;
ifstream fin( "podm.in" );
ofstream fout( "podm.out" );
const int NMAX = 505;
const long long INF = 2000000000000000000;
int N;
int l[NMAX], c[NMAX];
long long dp[NMAX][NMAX];
void Read()
{
fin >> N;
fin >> l[1];
for( int i = 2; i <= N + 1; ++i )
{
fin >> c[i - 1];
l[i] = c[i - 1];
}
fin.close();
}
void Do()
{
for( int i = 1; i < N; ++i )
dp[i][i + 1] = l[i] * l[i + 1] * c[i + 1];
for( int d = 2; d <= N; ++d )
{
for( int i = 1; i + d <= N; ++i )
{
long long minn = INF;
for( int j = i; j < i + d; ++j )
minn = min( minn, dp[i][j] + dp[j + 1][i + d] + 1LL * l[i] * l[j + 1] * c[i + d] );
dp[i][i + d] = minn;
}
}
fout << dp[1][N] << '\n';
}
int main()
{
Read();
Do();
return 0;
}