Pagini recente » Cod sursa (job #1348627) | Cod sursa (job #3159629) | Cod sursa (job #2839465) | Cod sursa (job #194011) | Cod sursa (job #2907913)
#include <bits/stdc++.h>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
#define cin in
#define cout out
#define NMAX 505
#define ll long long
ll dp[NMAX][NMAX], d[NMAX], n;
void dinamic() {
for (ll i = 1; i < n; i++)
dp[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
for (ll w = 2; w < n; w++)
for (ll i = 1; i + w <= n; i++) {
ll j = i + w;
dp[i][j] = LONG_LONG_MAX;
for (ll k = i; k < j; k++)
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + d[i - 1] * d[k] * d[j]);
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
for (int i = 0; i <= n; i++) {
cin >> d[i];
}
dinamic();
cout << dp[1][n];
}