Cod sursa(job #2815488)

Utilizator LiviuInfoPrioteasa Liviu LiviuInfo Data 9 decembrie 2021 18:54:59
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#include <climits>

using namespace std;

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

int n, v[502], d[502][502], lenght;

int calcul (int st, int dr)
{
    if (dr-st==1)
    {
        return 0;
    }

    int k=st+1;
    int result=v[st] * v[k] * v[dr] + calcul(st, k) + calcul(k, dr);
    for (k=st+2; k<dr; k++)
    {
        result = min(result, v[st] * v[k] * v[dr] + calcul(st, k) + calcul(k, dr));
    }

    return result;
}

int main()
{
    fin>>n;
    n++;
    for (int i=1; i<=n; i++)
    {
        fin>>v[i];
    }
    lenght=3;
    while (lenght <= n)
    {
        for (int i=1; i+lenght-1<=n; i++)
        {
            d[i][i+lenght-1] = calcul(i, i+lenght-1);
        }
        lenght++;
    }

    for (int i=1; i<=n; i++)
    {
        for (int j=1; j<=n; j++)
        {
            fout<<d[i][j]<<" ";
        }
        fout<<endl;
    }

    //fout<<d[1][n];
    return 0;
}