Cod sursa(job #3155889)

Utilizator IeremiaNicolaescu Ieremia Ieremia Data 10 octombrie 2023 09:18:29
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long d[501],j,k,l;
int n,i;
long long dp[501][501];
int main()
{
    fin>>n;
    for(i=1; i<=n+1; i++)
    {
        fin>>d[i];
    }
    for(i=1; i<n; i++)
    {
        dp[i][i+1]=(d[i]*d[i+1]*d[i+2])*1ll;
    }
    for(l=3; l<=n; l++)
    {
        for(i=1; i<=n-l+1; i++)
        {
            long long j=i+l-1;
            dp[i][j]=INT_MAX;
            for(k=i; k<j; k++)
            {
                dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+d[i]*d[k+1]*d[j+1]*1ll);
            }
        }
    }
    fout<<dp[1][n];
    return 0;
}