Cod sursa(job #2479323)

Utilizator GabyD002Dobrita Gabriel GabyD002 Data 23 octombrie 2019 18:04:28
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
#define NM 505
#define ull unsigned long long
#define oo 100000000000000000LL
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");

ull n,v[NM],dp[NM][NM];

void Citeste();
void Solve();

int main()
{   Citeste();
    Solve();
    f.close();
    g.close();
    return 0;
}

void Citeste()
{   f>>n;
    for(int i=0; i<=n; i++)
        f>>v[i];
}

void Solve()
{   for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
            if(i!=j)
                dp[i][j]=oo;
            else
            if(j==i+1)
                dp[i][j]=1;
    for(int t=1; t<n; t++)
        for(int i=1; i+t<=n; i++)
            for(int k=i; k<i+t; k++)
                dp[i][i+t]=min(dp[i][i+t],v[i-1]*v[i+t]*v[k]+dp[i][k]+dp[k+1][i+t]);
    g<<dp[1][n];
}