Cod sursa(job #3172340)

Utilizator Razvan23Razvan Mosanu Razvan23 Data 20 noiembrie 2023 15:02:57
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;

long long a[503], n;
long long dp[503][503];

int main()
{
    long long mn;
    int i, j, k;
    ifstream fin("podm.in");
    fin >> n;
    for (i = 1; i <= n + 1; i++)
        fin >> a[i];
    fin.close();
    for (i = 1; i < n; i++)
        dp[i][i + 1] = a[i]*a[i+1]*a[i+2];
    for (i = n - 2; i >= 1; i--)
      for (j = i + 2; j <= n; j++)
        {
            mn = (1LL << 60);
            for (k = i; k < j; k++)
                mn = min(mn, dp[i][k] + dp[k+1][j] + a[i]*a[k+1]*a[j+1]);
            dp[i][j] = mn;
        }
    ofstream fout("podm.out");
    fout << dp[1][n];
    fout.close();
    return 0;
}