Pagini recente » Cod sursa (job #3207391) | Cod sursa (job #2403761) | Cod sursa (job #586346) | Borderou de evaluare (job #532022) | Cod sursa (job #1967448)
#include <iostream>
#include <fstream>
#include <cstring>
#define ull unsigned long long
#define NMAX 505
using namespace std;
ifstream f ("podm.in");
ofstream g ("podm.out");
ull n, D[NMAX], m[NMAX][NMAX];
inline ull min(const ull & a, const ull & b) {
if (a < b) return a;
return b;
}
int main()
{
f>>n;
memset(m, 0xffffffff, sizeof(m));
cout<<m[0][0];
for (int i = 0; i <= n; i++) {
f>>D[i];
m[i][i] = 0;
}
for (int i = 1; i <= n; i++)
m[i][i + 1] = D[i - 1] * D[i] * D[i + 1];
for (int d = 2; d <= n; d++)
for (int i = 1; i + d <= n; i++)
for (int k = 0; k < d; k++)
m[i][i + d] = min(m[i][i + d], m[i][i + k] + m[i + k + 1][i + d] + D[i - 1] * D[i + k] * D[i + d]);
g<<m[1][n];
return 0;
}