Pagini recente » Cod sursa (job #2928835) | Cod sursa (job #2703829) | Cod sursa (job #819571) | Cod sursa (job #1491151) | Cod sursa (job #2813476)
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <cstring>
#include <climits>
using namespace std;
int n;
long long int v[502],dp[502][502];
ifstream fin("podm.in");
ofstream fout("podm.out");
int main()
{
fin >> n;
++n;
for (int i = 1; i <= n+1; i++)
{
fin >> v[i];
}
for (int i = 1; i <= n; i++)
{
dp[i][i + 1] = 0;
}
for (int lung = 3; lung <= n; lung++)
{
for (int st = 1; st + lung - 1 <= n; st++)
{
int dr = st + lung - 1;
dp[st][dr] = LONG_MAX;
for (int k = st + 1; k <= dr - 1; k++) {
dp[st][dr] = min(dp[st][dr], v[st] * v[k] * v[dr] + dp[st][k] + dp[k][dr]);
}
}
}
fout << dp[1][n];
return 0;
}