Cod sursa(job #2782054)

Utilizator PopescuAndreiAlexandruPopescu Andrei Alexandru PopescuAndreiAlexandru Data 11 octombrie 2021 15:33:54
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
#include <map>

using namespace std;

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

const long long INF = (1LL<<61);
const int N = 505;

int n;

long long DP[N][N],v[N];

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

    for(int pas=2; pas<=n; pas++)
        {
            for(int i=1; i<=n-pas+1; i++)
                {
                    int j=i+pas-1;
                    DP[i][j]=INF;
                    for(int k=i; k<j; k++)
                        DP[i][j]=min(DP[i][j],DP[i][k]+DP[k+1][j]+v[i-1]*v[k]*v[j]);
                }
        }

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