Cod sursa(job #1791335)

Utilizator Tyler_BMNIon Robert Gabriel Tyler_BMN Data 29 octombrie 2016 11:39:39
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>

using namespace std;

long long d[505],n;

ifstream fin("podm.in");
ofstream fout("podm.out");

void citire()
{
    fin>>n;
    for(int i=0;i<=n;i++)
        fin>>d[i];
}

long long m[505][505];

int main()
{
    citire();

    for(int i=1;i<=n;i++)
        a[i][i]=0;

    for(int x=2;x<n;x++)
        for(int j=x;j<=n;j++)
        {
            int i=j-1;

            long long Min=m[i][i]+m[i+1][j]+(d[i-1]*d[i]*d[j]);
            for(int k=i+1;k<j;k++)
            {
                long long s=m[i][k]+m[k+1][j]+(d[i-1]*d[k]*d[j]);
                if(s<Min)
                    Min=s;
            }
            m[i][j]=Min;
        }

    long long Min=m[1][1]+m[1+1][n]+(d[1-1]*d[1]*d[n]);
    for(int k=1+1;k<n;k++)
    {
        long long s=m[1][k]+m[k+1][n]+(d[1-1]*d[k]*d[n]);
        if(s<Min)
            Min=s;
    }

    fout<<Min

    return 0;
}