Pagini recente » Cod sursa (job #2035452) | Cod sursa (job #825874) | Cod sursa (job #513489) | Cod sursa (job #674662) | Cod sursa (job #2504951)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
#define ll long long
#define f0(i, n) for(int i = 0; i < n; i++)
#define f1(i, n) for (int i = 1; i <= n; i++)
#define fc(i, j, x) for(int i = j; i < x; i++)
const int N = 1000;
const ll inf = 1e18;
int v[N], n;
ll dp[N][N];
int main(){
ifstream in ("podm.in");
in >> n;
f0(i, n + 1)
in >> v[i];
in.close();
f1(i, n)
f1(j, n)
dp[i][j] = inf;
f1(i, n)
dp[i][i] = 0;
f1(i, n - 1)
f1(j, n - i){
int x = j + i;
fc(k, j, x)
dp[j][x] = min (dp[j][x], dp[j][k] + dp[k + 1][x] + v[j - 1] * v[k] * v[x]);
}
ofstream out ("podm.out");
out << dp[1][n];
out.close();
return 0;
}