Cod sursa(job #2314239)

Utilizator lixiLixandru Andrei lixi Data 8 ianuarie 2019 10:47:22
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include<fstream>
#include<climits>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
const long long MAX=LLONG_MAX;
int n,d[501];
long long mat[501][501];
long long nrop(int *p, int n)
{
    for(int i=1;i<=n;i++)
        mat[i][i]=0;
    for(int i=1;i<n;i++)
        mat[i][i+1]=1LL*d[i-1]*d[i]*d[i+1];

      for(int lg=2;lg<n;lg++)
            for(int i=1;i<=n-lg;i++)
      {
          int ind=lg+i;
          mat[i][ind]=MAX;
          for(int j=i;j<ind;j++)
            mat[i][ind]=min(mat[i][ind], mat[i][j]+mat[j+1][ind]+d[i-1]*d[j]*d[ind]);
      }
      return mat[1][n];
}
int main()
{
    f>>n;
    for(int i=0;i<=n;i++)
        f>>d[i];
    g<<nrop(d,n);
    return 0;
}