Cod sursa(job #2314242)

Utilizator lixiLixandru Andrei lixi Data 8 ianuarie 2019 10:48:57
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 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()
{
    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]+1LL*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();
    return 0;
}