Cod sursa(job #3155813)

Utilizator SSKMFSS KMF SSKMF Data 9 octombrie 2023 19:30:17
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
using namespace std;

ifstream cin ("podm.in");
ofstream cout ("podm.out");

int main ()
{
    int lungime;
    cin >> lungime;

    int dimensiune[501];
    long long inmultiri[501][501];
    for (int indice = 0 ; indice <= lungime ; indice++)
        { cin >> dimensiune[indice]; inmultiri[indice][indice] = 0; }

    for (int lungime_actuala = 2 ; lungime_actuala <= lungime ; lungime_actuala++)
        for (int stanga = 1 , dreapta = lungime_actuala ; dreapta <= lungime ; stanga++ , dreapta++)
        {
            inmultiri[stanga][dreapta] = 1e18;
            for (int intermediar = stanga ; intermediar < dreapta ; intermediar++)
                inmultiri[stanga][dreapta] = min(inmultiri[stanga][dreapta] , inmultiri[stanga][intermediar] + inmultiri[intermediar + 1][dreapta] + 1LL * dimensiune[stanga - 1] * dimensiune[intermediar] * dimensiune[dreapta]);
        }

    cout << inmultiri[1][lungime];
    cout.close(); cin.close();
    return 0;
}