Cod sursa(job #2392219)
| Utilizator | Data | 29 martie 2019 19:54:08 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 505
ll n, d[N], dp[N][N];
int main(){
ifstream cin ("podm.in");
ofstream cout ("podm.out");
cin >> n;
for (int i=0; i<=n; i++) cin >> d[i];
for (int l=1; l<n; l++){
for (int i=1; i<=n-l; i++){
dp[i][i+l] = (1LL<<62);
for (int j=i; j<=i+l; j++)
dp[i][i+l] = min(dp[i][i+l], dp[i][j] + dp[j+1][i+l] + d[i-1]*d[j]*d[i+l]);
}
}
cout << dp[1][n];
return 0;
}
