Cod sursa(job #3220513)
Utilizator | Andrei Gospodaru andreigspd | Data | 3 aprilie 2024 21:22:32 |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long int n,v[10001],d[505][505],inf=1e18;
int main(){
fin>>n;
n++;
for(int i=1;i<=n;i++){
fin>>v[i];
d[i][i+1]=0;
}
for(int lg=3;lg<=n;lg++){
for(int i=1;i+lg-1<=n;i++){
int j=i+lg-1;
d[i][j]=inf;
for(int k=i+1;k<j;k++)d[i][j]=min(d[i][j],d[i][k]+d[k][j]+v[i]*v[k]*v[j]);
}
}
fout<<d[1][n];
}