Cod sursa(job #1370690)

Utilizator teoionescuIonescu Teodor teoionescu Data 3 martie 2015 16:28:40
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
typedef long long ll;
const ll INF = (ll)(1e17);
const int Nmax = 555;
ll d[Nmax][Nmax];
int N,v[Nmax];
int main(){
    in>>N;
    for(int i=1;i<=N+1;i++) in>>v[i];
    int p=0;
    for(int j=1;j<N;j++) d[2][j]=0;
    for(int i=3;i<=N+1;i++){
        for(int j=1;j+i-1<=N+1;j++){
            d[i][j]=INF;
            for(int k=j+1;k<j+i-1;k++){
                d[i][j]=min(d[i][j], d[k-j+1][j] + d[j+i-k][k] + 1LL*v[j]*v[k]*v[j+i-1] );
            }
        }
    }
    out<<d[N+1][1]<<'\n';
    return 0;
}