Cod sursa(job #2910667)

Utilizator Lol150123Bruno Baciu Lol150123 Data 23 iunie 2022 18:11:30
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <climits>
using namespace std;
int const N = 501;
int dim[N];
int costMin[N][N];
int main()
{
    int n;
    cin >> n;
    n++;
    for (int i = 0; i < n; i++)
    {
        cin >> dim[i];
    }

    for (int dist = 1; dist <= n - 2; dist++) // fixam distanta
    {
        for (int i = 1; i < n - dist; i++) // fixam capatul stanga, avem grija da nu iesim din vector
        {
            int j = i + dist; // determinam capatul dreapta
            int minim = INT_MAX;
            for (int k = i; k <= j - 1; k++)
            {
                minim = min(minim, costMin[i][k] + costMin[k + 1][j] + dim[i - 1] * dim[k] * dim[j]); // recurenta dinamicii
            }
            costMin[i][j] = minim;
        }
    }
    cout << costMin[1][n - 1]; // costul minim de eliminiare de la 1 la n
    return 0;
}