Cod sursa(job #3355302)

Utilizator leoebunLeonard Neacsa leoebun Data 22 mai 2026 14:10:37
Problema Parantezare optima de matrici Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;

int main(void) {
    int n;
    ifstream fin("podm.in");
    ofstream fout("podm.out");
    fin >> n;

    vector<int> v(n + 1);
    vector<vector<int>> dp(n, vector<int>(n, 1e7));
    for (int i = 0; i <= n; i++) {
        fin >> v[i];
    }

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

    fout << dp[0][n - 1] << "\n";
    return 0;
}