Cod sursa(job #3166135)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 7 noiembrie 2023 19:10:21
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
#include <cmath>
#include <vector>
#include <climits>

#define DIM 500
#define INF 1e18

using namespace std;

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

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

long long n,sol = -1,poz = -1;
long long dp[DIM+5][DIM+5];
long long d[DIM+5];

signed main()
{
    f>>n;
    for(int i=0;i<=n;i++){
        f>>d[i];
    }

    for(int i=1;i<=n;i++){

        dp[i][i] = 0;

        for(int j = i-1;j>=1;j--){

            if(j==i-1){
                dp[j][i] = d[j-1]*d[j]*d[i];
            }else{
                dp[j][i] = INF;
                for(int k = j;k<=i;k++){
                    dp[j][i] = min(dp[j][i], dp[j][k] + dp[k+1][i] + d[j-1]*d[k]*d[i]);
                }
            }
        }
    }

    g<<dp[1][n];

    return 0;
}