Cod sursa(job #1059610)
Utilizator | FMI - Stoica Mihai mihai10stoica | Data | 16 decembrie 2013 20:08:36 |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream in("podm.in");
ofstream out("podm.out");
int n,i,j,k;
long long d[505],cost[505][505];
in>>n;
for(i=0;i<=n;i++) in>>d[i];
in.close();
long long aux,minim;
for(j=2;j<=n;j++) {
for(i=j-1;i>=1;i--) {
minim=0xfffffffffffff;
for(k=i;k<j;k++) {
aux=cost[i][k]+cost[k+1][j]+d[i-1]*d[k]*d[j];
if(aux<minim) minim=aux;
}
cost[i][j]=minim;
}
}
out<<cost[1][n]; out.close();
return 0;
}