Pagini recente » Cod sursa (job #2835784) | Cod sursa (job #68757) | Cod sursa (job #1350568) | Cod sursa (job #2984872) | Cod sursa (job #1424225)
#include <fstream>
#include <iostream>
#include <vector>
#define infinity (1LL << 60)
#define LL long long
#define DN 505
using namespace std;
vector <int> v;
LL best[DN][DN];
int main() {
int n, x;
//freopen("input.txt", "r", stdin);
ifstream fin("podm.in");
ofstream fout("podm.out");
fin >> n;
for(int i = 0; i < n+1; ++i){
fin >> x;
v.push_back(x);
}
for(int i = 0; i < n-1; ++i){
best[i][i+2] = v[i] * v[i+1] * v[i+2];
}
for(int lg = 3; lg <= n; ++lg){
for(int i = 0; i + lg <= n; ++i){
LL minn = infinity;
for(int j = i + 1; j <= i + lg - 1; ++j)
minn = min(minn, best[i][j] + best[j][i+lg] + v[i] * v[j] * v[i+lg]);
best[i][i+lg] = minn;
}
}
fout << best[0][n];
return 0;
}