Cod sursa(job #1931824)

Utilizator AndreiMaximIonutMaxim Andrei AndreiMaximIonut Data 19 martie 2017 14:44:54
Problema Parantezare optima de matrici Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
unsigned long long matrice[502][502],d[502];
int main()
{
    unsigned long long n,i,x,k;
    fin>>n;
    for(i=0; i<=n; ++i) fin>>d[i];

    for(i=1; i<n; ++i)
        matrice[i][i+1]=d[i-1]*d[i]*d[i+1];

    for(x=2; x < n; ++x)
        for(i=1; i <=n && i+x <= n; ++i)
        {
            matrice[i][i+x]=100000000000000000LL;
            for(k=1; k < i+x; ++k)
                matrice[i][i+x] = min(matrice[i][i+x], matrice[i][k] + matrice[k+1][i+x] + d[i-1]*d[k]*d[i+x]);
        }
    fout<<matrice[1][n];
    return 0;
}