Pagini recente » Cod sursa (job #1450636) | Cod sursa (job #2676808) | Cod sursa (job #52802) | Cod sursa (job #1137888) | Cod sursa (job #787340)
Cod sursa(job #787340)
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
vector<int> v;
long long cache[502][502];
long long solve(int i, int j){
if(cache[i][j] == cache[501][501]) {
int k;
for(k = i; k < j; ++k) {
cache[i][j] = min(solve(i, k) + solve(k + 1, j) + v[i - 1] * v[k] * 1ll * v[j], cache[i][j]);
}
if(i == j) {
cache[i][j] = 0;
}
}
return cache[i][j];
}
int main(){
int i, n;
memset(cache, 0x1F, sizeof(cache));
ifstream f("podm.in");
f >> n;
++n;
v.resize(n);
for(i = 0; i < n; ++i) {
f >> v[i];
}
long long ans = solve(1, v.size() - 1);
ofstream g("podm.out");
g << ans << endl;
g.close();
return 0;
}