Cod sursa(job #3350004)

Utilizator dragos7952Traistaru Dragos dragos7952 Data 4 aprilie 2026 15:46:13
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
#include<vector>

using namespace std;

#define MAXX 1e18

ifstream f("podm.in");
ofstream g("podm.out");

int main()
{
    int n;

    f >> n;

    vector<int> nums(n+1);

    for (int i = 0; i <= n; i++)
        f >> nums[i];

    vector<vector<long long>> dp(n+1, vector<long long>(n+1, 1e9));

    for (int i = 0; i <= n; i++)
        dp[i][i] = 0;

    for (int i = 1; i < n; ++i) {
        dp[i][i + 1] =  nums[i - 1] * nums[i] * nums[i + 1];  
    }

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