Cod sursa(job #3241635)

Utilizator prares06Papacioc Rares-Ioan prares06 Data 1 septembrie 2024 17:01:09
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include<bits/stdc++.h>
using namespace std;

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

int n, v[505];
vector<vector<int64_t> > dp;

int main(){
    fin >> n;

    ++n;

    for(int i = 1; i <= n; ++i)
        fin >> v[i];

    dp.resize(n + 1, vector<int64_t>(n + 1, 1e18));

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

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

    fout << dp[1][n];
}