Cod sursa(job #3347083)
| Utilizator | Data | 15 martie 2026 15:55:56 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n, i, a[502], l, j, k;
long long dp[502][502];
int main()
{
fin>>n;
for(i=1;i<n+2;i++)
fin>>a[i];
for(l=3;l<=n;l++)
{
for(i=1;i<=n-l+1;i++)
{
j=i+l-1;
dp[i][j]=1000000000000000000;
for(k=i;k<j;k++)
dp[i][j]=min(dp[i][j], dp[i][k]+dp[k+1][j]+a[i]*a[k+1]*a[j+1]);
}
}
fout << dp[1][n];
return 0;
}
