Pagini recente » Cod sursa (job #218758) | Cod sursa (job #643636) | Cod sursa (job #3209267) | Cod sursa (job #1869423) | Cod sursa (job #2300297)
#include <bits/stdc++.h>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
int N;
long long D[501], M[500][500];
int main()
{
in >> N;
for(int i = 0; i <= N; ++i)
in >> D[i]; //matricea M[i] are dimensiunile D[i] si D[i + 1]
//M[i][j] reprezinta solutia pt matricele i...j
for(int i = 0; i < N - 1; ++i)
{
M[i][i] = 0;
M[i][i + 1] = D[i] * D[i + 1] * D[i + 2];
}
for(int i = N - 3; i >= 0; --i)
for(int j = i + 2; j < N; ++j)
{
M[i][j] = (1LL << 62);
for(int k = i; k < j; ++k)
M[i][j] = min(M[i][j], M[i][k] + M[k + 1][j] + D[i] * D[k + 1] * D[j + 1]);
}
out << M[0][N - 1];
return 0;
}