Cod sursa(job #2114936)
| Utilizator | Data | 26 ianuarie 2018 09:09:40 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#define INF 2e9
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n, v[502], dp[502][502];
int main()
{
f>>n;
for(int i = 1; i <= n + 1; ++ i)
f>>v[i];
for(int L = 3; L <= n + 1; ++ L){
for(int st = 1; st + L - 1 <= n + 1; ++ st){
int dr = st + L - 1;
dp[st][dr] = INF;
for(int j = st + 1; j < dr; ++ j)
dp[st][dr] = min(dp[st][dr], dp[st][j] + dp[j][dr] + v[st] * v[j] * v[dr]);
}
}
g<<dp[1][n + 1];
return 0;
}
