Cod sursa(job #2121773)

Utilizator Luca19Hritcu Luca Luca19 Data 4 februarie 2018 12:31:08
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#define Nmax 501
#define ll unsigned long long
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
ll a[Nmax][Nmax];
ll v[Nmax];
int main()
{
    ll n,i,l,k,minn;
    f>>n;
    for(i=0;i<=n;i++)
        f>>v[i];
    for(i=1;i<n;i++)
        a[i][i+1]=v[i-1]*v[i]*v[i+1];

    for(l=2;l<n;l++)
        for(i=1;i+l<=n;i++)
        {
            minn=2e18+1;
            for(k=i;k<i+l;k++)
                if(a[i][k]+a[k+1][i+l]+v[i-1]*v[k]*v[i+l]<minn)
                    minn=a[i][k]+a[k+1][i+l]+v[i-1]*v[k]*v[i+l];
            a[i][i+l]=minn;
        }
    g<<a[1][n];

    return 0;
}