Pagini recente » Cod sursa (job #28431) | Cod sursa (job #1131837) | Cod sursa (job #2409743) | Cod sursa (job #2381853) | Cod sursa (job #3036612)
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
ifstream f("nucleulvaloros2.in");
ofstream g("nucleulvaloros2.out");
int calc_cost(vector<int>& v, int n) {
vector<vector<int>> cost(n, vector<int>(n, 0));
for (int i = 0; i < n; i++) {
cost[i][i] = v[i];
}
for (int l = 2; l <= n; l++) {
for (int i = 0; i <= n-l; i++) {
int j = i+l-1;
cost[i][j] = INT_MAX;
for (int k = i; k < j; k++) {
cost[i][j] = min(cost[i][j], cost[i][k] + cost[k+1][j] + accumulate(v.begin()+i, v.begin()+j+1, 0));
}
}
}
return cost[0][n-1];
}
int main()
{
int t;
int n;
f >> n;
for (int i=1; i<=n; i++)
{
int x; f >> x;
v.push_back(x);
}
g << calc_cost(v, n);
return 0;
}