Cod sursa(job #3322069)

Utilizator ItsHezovPahonie George Alessio ItsHezov Data 12 noiembrie 2025 16:12:45
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;
ifstream cin("podm.in");
ofstream cout("podm.out");
typedef long long ll;
const ll mxN = 501, INF = 1e17;
ll v[mxN], dp[mxN][mxN];
int main()
{
    int n ;
    cin >> n ;
    for(int i = 1;i <= n + 1;i++)
        cin >> v[i];
    for(int i = 1;i<=n;i++)
        for(int j = 1;j<=n;j++)
            if(i!=j) dp[i][j] = INF;
    for(int i = 1;i<n;i++)
        dp[i][i+1] = v[i] * v[i+1] * v[i+2];

    for(int len = 3;len<=n;len++)
        for(int r = len;r <= n;r++)
        {
            int l = r - len + 1;
            for(int k = l;k<r;k++)
                dp[l][r] = min(dp[l][r], dp[l][k] + dp[k+1][r] + v[l] * v[k+1] * v[r+1]);
        }
    cout << dp[1][n] << '\n';
    return 0;
}