Cod sursa(job #3365642)

Utilizator NutaAlexandruASN49K NutaAlexandru Data 22 septembrie 2026 21:52:10
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using i64 = long long;
const i64 INF = 1e18;
void solve()
{
    int n;
    std::cin >> n;
    n++;
    std::vector<int> a(n);
    for (auto &c : a) {
        std::cin >> c;
    }
    std::vector<std::vector<i64>> dp(n, std::vector<i64>(n, INF));
    for (int r = 1; r < n; r++) {
        dp[r - 1][r] = 0;
        for (int l = r - 2; l >= 0; l--) {
            for (int mid = l + 1; mid < r; mid++) {
                dp[l][r] = std::min(dp[l][r], dp[l][mid] + dp[mid][r] + 1LL * a[l] * a[mid] * a[r]);
            }
        }
    }
    std::cout << dp[0][n - 1] << '\n';
}
signed main(void)
{
    freopen("podm.in", "r", stdin);
    freopen("podm.out", "w", stdout);
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int tt = 1;
    while (tt--) {
        solve();
    }
}