Pagini recente » Cod sursa (job #1305390) | Cod sursa (job #1940950) | Cod sursa (job #991131) | Cod sursa (job #2660003) | Cod sursa (job #2813852)
#include <fstream>
#define NMAX 512
#define INF 100000000000000000ULL
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
unsigned long long int pd[NMAX][NMAX], d[NMAX];
int n;
int main() {
fin >> n;
for(int i = 0; i <= n; i ++)
fin >> d[i];
for(int i = 1; i <= n; i ++)
pd[i][i] = 0;
for(int i = 1; i < n; i ++)
pd[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
for(int diff = 2; diff < n; diff ++)
for(int i = 1; i < n; i ++) {
int j = min(i + diff, n);
pd[i][j] = INF;
for(int k = i; k < j; k ++)
pd[i][j] = min(pd[i][j], pd[i][k] + pd[k + 1][j] + d[i - 1] * d[k] * d[j]);
}
fout << pd[1][n] << '\n';
// for(int i = 1; i <= n; i ++, fout << '\n')
// for(int j = 1; j <= n; j ++) fout << pd[i][j] << ' ';
return 0;
}