Cod sursa(job #2812283)
| Utilizator | Data | 4 decembrie 2021 12:14:12 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
#define mF "podm"
std::ofstream out(mF ".out");
std::ifstream in(mF ".in");
constexpr int N = 501; long long V[N][N]; int A[N];
long long F(int i, int j)
{
if (j-i == 1 or V[i][j]) return V[i][j];
V[i][j] = (1<<31)-1; for (int k = i+1; k < j; k++)
V[i][j] = std::min(V[i][j],
F(i, k) + F(k, j) + A[i] * A[k] * A[j]);
return V[i][j];
}
int main()
{
int n; in >> n; for (int i = 0; i <= n; i++) in >> A[i];
out << F(0, n);
}
