Cod sursa(job #3364516)

Utilizator Alexandru_OrzeaOrzea Alexandru Alexandru_Orzea Data 4 septembrie 2026 18:33:02
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/
#include <fstream>

using namespace std;

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

const long long inf = 1000000000000000000;
long long n, m[505];
long long dp[505][505];

int main()
{
    f>>n;
    
    for(int i=0; i<=n; i++)
    f>>m[i];
    
    for(int i=1; i<n; i++)
    dp[i][i+1] = 1LL * m[i-1] * m[i] * m[i+1];
    
    for(int len=3; len<=n; len++){
        for(int i=1; i+len-1 <= n; i++){
            int j = i+len-1;
            
            dp[i][j] = inf;
            for(int k=i; k<=j-1; k++){
                dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + m[i-1] * m[k] * m[j]);
            }
        }
    }
    
    g<<dp[1][n];

    return 0;
}