Cod sursa(job #2821173)

Utilizator francescom_481francesco martinut francescom_481 Data 22 decembrie 2021 11:12:01
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");
#define cin fin
#define cout fout

#define N 505
#define inf 100000000000000
long long a[N][N], d[N], n, minim;

int main()
{
    cin >> n;
    for(int i = 0 ; i <= n ; i++)
    {
        cin >> d[i];
    }
    for(int i = 1 ; i <= n ; i++)a[i][i] = 0;
    for(int i = 1 ; i < n ; i++)
    {
        a[i][i+1] = d[i-1]*d[i]*d[i+1];
    }
    for(int l = 2 ; l < n ; l++)
    {
        for(int i = 1 ; i <= n-l ; i++)
        {
            int j = i+l;
            minim = inf;
            for(int k = i ; k < j ; k++)
            {
                minim = min(minim,a[i][k]+a[k+1][j]+d[i-1]*d[k]*d[j]);
            }
            a[i][j] = minim;
        }
    }
    cout << a[1][n];
    return 0;
}