Cod sursa(job #2565479)
Utilizator | Mihnea MihneaGhira | Data | 2 martie 2020 14:20:00 |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 80 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include<fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n;
long long D[505][505],v[505];
int main(){
fin>>n;
n++;
for(int i=1;i<=n;i++)
fin>>v[i];
for(int i=1;i<n;i++)
D[i][i+1]=0;
for(int lungime=2;lungime<=n-1;lungime++){
for(int i=1;i+lungime<=n;i++){
int j=i+lungime;
D[i][j]=2000000000;
for(int k=i+1;k<=j-1;k++)
D[i][j]=min(D[i][j],D[i][k]+D[k][j]+v[i]*v[j]*v[k]);
}
}
fout<<D[1][n];
return 0;
}