Cod sursa(job #3280967)

Utilizator stanciuvalentinStanciu-Tivlea Valentin Gabriel stanciuvalentin Data 27 februarie 2025 21:57:27
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
#define int long long
#define pll pair<long long,long long>

using namespace std;

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

int n,x,y,dp[520][520];
pll mat[520];

int32_t main()
{
    f>>n>>x;
    for(int i=1; i<=n; i++)
        y=x, f>>x, mat[i]={y,x};
    for(int i=1; i<=n; i++)
        for(int j=i+1; j<=n; j++)
            dp[i][j]=INT_MAX;
    for(int t=2; t<=n; t++)
    {
        int i=1, j=t;
        while(i<=n-t+1)
        {
            for(int k=i; k<=j; k++)
                dp[i][j]=min(dp[i][j], dp[i][k]+dp[k+1][j]+mat[i].first*mat[k].second*mat[j].second);
            i++, j++;
        }
    }
    g<<dp[1][n];
    return 0;
}