Pagini recente » Cod sursa (job #1537219) | Cod sursa (job #1647678) | Cod sursa (job #2666142) | Cod sursa (job #2603128) | Cod sursa (job #2506418)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long INF = (1LL << 60);
int main(){
int n;
fin >> n;
vector<long long> arr;
for(int i = 0; i <= n; i++){
int value;
fin >> value;
arr.push_back(value);
}
vector<vector<long long>>dp(n+5, vector<long long>(n+5, 0));
for (int i = 1; i < n; i++) {
for (int j = 1; j+i <= n; j++) {
dp[j][j + i] = INF;
for (int k = j; k < j + i; ++k) {
if(dp[j][j+i] > dp[j][k] + dp[k + 1][j + i] + arr[j - 1] * arr[k] * arr[j + i]){
dp[i][i+i] = dp[j][k] + dp[k + 1][j + i] + arr[j - 1] * arr[k] * arr[j + i];
}
}
}
}
fout << dp[1][n];
fin.close();
fout.close();
return 0;
}