Cod sursa(job #1575735)

Utilizator SmitOanea Smit Andrei Smit Data 21 ianuarie 2016 19:47:26
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#define inf 1LL<<60

using namespace std;

int n;
long long a[503],d[503][503];

inline void Citire()
{
    int i;
    ifstream fin("podm.in");
    fin>>n;
    for(i=0;i<=n;++i)
        fin>>a[i];
    fin.close();
}

inline void Solutie()
{
    int i,j,pas,k;
    long long minim;
    for(i=1;i<n;++i)
        d[i][i+1]=a[i-1]*a[i]*a[i+1];
    for(pas=2;pas<n;++pas)
        for(i=1;i<=n-pas;++i)
        {
            j=i+pas;
            minim=inf;
            for(k=i+1;k<=j;++k)
                minim=min(minim,d[i][k-1] + d[k][j] + a[i-1]*a[k-1]*a[j]);
            d[i][j]=minim;
        }
}

int main()
{
    Citire();
    Solutie();
    ofstream fout("podm.out");
    fout<<d[1][n]<<"\n";
    fout.close();
    return 0;
}