Cod sursa(job #2814393)
| Utilizator | Data | 7 decembrie 2021 23:58:10 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int main()
{
int n, i, j, L, v[505], k;
unsigned long long d[505][505];
fin >> n; n++;
for(i = 1; i <= n; i++)
{
fin >> v[i];
d[i][i+1] = 0;
}
for(L = 3; L <= n; L++)
{
for(i = 1; i + L - 1 <= n; i++)
{
j = i + L - 1;
d[i][j] = 9223372036854775000 * 2;
for(k = i + 1; k <= j - 1; k++)
{
d[i][j] = min(d[i][j], v[i]*v[k]*v[j] + d[i][k] + d[k][j]);
}
}
}
fout << d[1][n];
return 0;
}
