Cod sursa(job #3297380)

Utilizator Arhiva_EducationalaArhiva Educationala Arhiva_Educationala Data 22 mai 2025 15:55:47
Problema Parantezare optima de matrici Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 500;
const int INF = 1e9;

int v[NMAX + 1];

int dp[NMAX + 1][NMAX + 1];

int main() {
    ifstream fin( "podm.in" );
    ofstream fout( "podm.out" );
    int n;
    fin >> n;
    for ( int i = 0; i <= n; i ++ ) {
        fin >> v[i];
    }

    for ( int l = 1; l < n; l ++ ) {
        for ( int i = 1; i + l <= n; i ++ ) {
            int j = i + l;
            dp[i][j] = INF;
            for ( int k = i; k < j; k ++ ) {
                dp[i][j] = min( dp[i][j], dp[i][k] + dp[k + 1][j] + v[i - 1] * v[k] * v[j] );
            }
        }
    }
    fout << dp[1][n] << '\n';
    return 0;
}