Cod sursa(job #2230823)

Utilizator HumikoPostu Alexandru Humiko Data 11 august 2018 18:02:39
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("podm.in");
ofstream fout ("podm.out");

int n;
long long v[505];
long long dp[505][505];

int main()
{
    fin>>n;
    for ( int i = 1; i <= n+1; ++i )
        fin>>v[i];

    for ( int i = 1; i <= n; ++i )
    {
        for ( int j = 1; i+j <= n; ++j )
        {
            long long line = j;
            long long row = i+j;
            long long minimum_Value = (1LL<<62);

            for ( int k = line; k < row; ++k )
                minimum_Value = min(minimum_Value, dp[line][k]+dp[k+1][row]+v[line]*v[k+1]*v[row+1]);

            dp[line][row] = minimum_Value;
        }
    }

    fout<<dp[1][n]<<'\n';
}