Cod sursa(job #2808077)
| Utilizator | Data | 24 noiembrie 2021 16:00:42 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 10 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
int p[501], n, dp[501][501];
int main(){
in >> n;
n++;
for (int i = 0; i < n; i++)
in >> p[i];
for (int len = 1; len < n - 1; len++)
for (int i = 1; i < n - len; i++)
dp[i][i + len] = min(dp[i + 1][i + len] + p[i - 1] * p[i] * p[i + len], dp[i][i + len - 1] + p[i - 1] * p[i + len - 1] * p[i + len]);
out << dp[1][n - 1];
return 0;
}