Pagini recente » Cod sursa (job #1936017) | Cod sursa (job #811719) | Cod sursa (job #2162540) | Cod sursa (job #249889) | Cod sursa (job #2506419)
#include <fstream>
#include <vector>
#include<iostream>
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 l = 1; l < n; l++) {
for (int i = 1; i+l <= n; i++) {
dp[i][i + l] = INF;
for (int k = i; k < i + l; k++) {
if(dp[i][i+l] > dp[i][k] + dp[k + 1][i + l] + arr[i - 1] * arr[k] * arr[i + l]){
dp[i][i+l] = dp[i][k] + dp[k + 1][i + l] + arr[i - 1] * arr[k] * arr[i + l];
}
}
}
}
fout << dp[1][n];
//cout << dp[1][n];
fin.close();
fout.close();
return 0;
}