Pagini recente » Cod sursa (job #240296) | Cod sursa (job #292904) | Cod sursa (job #1559215) | Cod sursa (job #2959795) | Cod sursa (job #3039762)
/// Preset de infoarena
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
#define int long long
const int maxN = 505;
int n, dp[maxN][maxN];
pair <int, int> v[maxN];
signed main()
{
fin >> n;
for(int i = 1; i <= n + 1; i++)
{
fin >> v[i].first;
v[i - 1].second = v[i].first;
}
for(int d = 1; d <= n; d++)
{
for(int i = 1; i + d <= n; i++)
{
int j = i + d;
if(d == 1)
dp[i][j] = v[i].first * v[i].second * v[j].second;
else
{
dp[i][j] = (1LL << 60);
for(int k = i; k <= j - 1; k++)
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + v[i].first * v[k].second * v[j].second);
}
}
}
fout << dp[1][n];
return 0;
}