Cod sursa(job #3271166)

Utilizator BucsMateMate Bucs BucsMate Data 25 ianuarie 2025 12:14:02
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <climits>

using namespace std;

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

int main()
{
    int n;
    int meretek[501];
    fin >> n;
    long long dp[502][502];
    for(int i = 0; i <= n+1; i++){
        for(int j = 0; j <= n+1; j++){
            dp[i][j] = LLONG_MAX/4;
        }
    }
    for(int i = 0; i <= n; i++){
        fin >> meretek[i];
        dp[i][i] = 0;
    }
    for(int atlo = 1; atlo <= n; atlo++){
        for(int sor = 1; sor <= n-atlo+1; sor++){
            int oszlop = sor + atlo-1;

            for(int koztes = sor; koztes <= oszlop; koztes++){
                dp[sor][oszlop] = min(dp[sor][oszlop], dp[sor][koztes] + meretek[sor-1]*meretek[oszlop]*meretek[koztes] + dp[koztes+1][oszlop]);
            }
        }
    }
    fout << dp[1][n];
    return 0;
}