Pagini recente » Cod sursa (job #129508) | Cod sursa (job #1771699) | Cod sursa (job #2192541) | Cod sursa (job #2624085) | Cod sursa (job #1108547)
#include <iostream>
#include <fstream>
using namespace std;
const int Nmax = 502;
long long A[Nmax];
long long D[Nmax][Nmax];
int N;
void solve()
{
for ( int i = N; i >= 1; i-- )
{
D[i][i] = 0;
if ( i < N )
D[i][i + 1] = A[i - 1] * A[i] * A[i + 1];
for ( int j = i + 2; j <= N; ++j )
{
D[i][j] = 1e18;
for ( int k = i; k < j; ++k )
{
D[i][j] = min( D[i][j], D[i][k] + D[k + 1][j] + A[i - 1] * A[k] * A[j] );
}
}
}
ofstream g("podm.out");
g << D[1][N];
}
int main()
{
ifstream cin("podm.in");
cin >> N;
for ( int i = 0; i <= N; ++i )
cin >> A[i];
solve();
return 0;
}