Pagini recente » Cod sursa (job #2854126) | Cod sursa (job #842944) | Cod sursa (job #3205792) | Cod sursa (job #1993899) | Cod sursa (job #3290848)
#include <algorithm>
#include <iostream>
#include <queue>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
#define fast_io ios::sync_with_stdio(0); cin.tie(0);
typedef long long ll;
ifstream fin("podm.in");
ofstream fout("podm.out");
const int MAXN = 505;
const long long INF = 0x3f3f3f3f3f3f3f3f;
int n;
long long v[MAXN];
long long dp[MAXN][MAXN];
void ReadData() {
fin >> n;
for (int i = 0; i <= n; i++) {
fin >> v[i];
}
}
void Solve() {
for (int i = 1; i <= n; i++) {
dp[i][i] = 0;
}
for (int i = 1; i < n; i++) {
dp[i][i + 1] = v[i - 1] * v[i] * v[i + 1];
}
for (int dist = 2; dist < n; dist++) {
for (int i = 1; i <= n - dist; i++) {
int j = i + dist;
dp[i][j] = INF;
for (int k = i; k <= j; k++) {
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + v[i - 1] * v[k] * v[j]);
}
}
}
fout << dp[1][n] << '\n';
}
int main() {
ReadData();
Solve();
return 0;
}