Cod sursa(job #2637355)

Utilizator Razvan48Capatina Razvan Nicolae Razvan48 Data 22 iulie 2020 16:58:59
Problema Parantezare optima de matrici Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <climits>

const int NMAX = 500;

long long int dp[1+NMAX][1+NMAX];
int v[2+NMAX];

using namespace std;

int main()
{
  ifstream f("podm.in");
  ofstream g("podm.out");

  int n;
  f>>n;

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

  for(int l=2;l<=n;l++)
  {
    for(int i=1;i<=n;i++)
    {
      dp[l][i]=LLONG_MAX;
    }
  }

  for(int l=2;l<=n;l++)
  {
    for(int i=1;i<=n-l+1;i++)
    {
      dp[l][i] = min(dp[l-1][i] + v[i]*v[i+l]*v[i+l-1],
                     dp[l-1][i+1] + v[i]*v[i+l]*v[i+1]);
    }
  }

  g<<dp[n][1];

  return 0;
}