Cod sursa(job #3370377)

Utilizator Alexutu008Ionita Alexandru-Dumitru Alexutu008 Data 25 octombrie 2026 20:47:41
Problema Parantezare optima de matrici Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;
#define int unsigned long long

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

signed main()
{
    freopen("podm.in", "r", stdin);
    freopen("podm.out", "w", stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    
    cin>>k;
    for(int i=1;i<=k+1;++i){
        int x; cin>>x;
        v.push_back(x);
    }
    n.push_back(0); m.push_back(0);
    for(int i=0;i<k;++i){
        n.push_back(v[i]);
        m.push_back(v[i+1]);
    }

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

    cout<<dp[1][k];
    
    return 0;
}