Cod sursa(job #3325140)

Utilizator Matei_M9Mogirzan Matei-Valeriu Matei_M9 Data 24 noiembrie 2025 20:43:02
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#define NMAX 502

using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n;
int d[NMAX];
long long int nrmin[NMAX][NMAX];

int main()
{int i, j, lg,k;
 fin>>n;
 for (i=0; i<=n; i++) fin>>d[i];
 //pd
 //initializare pentru 2 matrici
 for (i=1; i<n; i++) nrmin[i][i+1]=d[i-1]*d[i]*d[i+1];
 //rezolv relatia de recurenta bottom-up
 for (lg=3; lg<=n; lg++) //iau secventele de lungime lg
      for (i=1; i<=n-lg+1; i++) //secventa care incepe la pozitia i
          {
           j=i+lg-1; nrmin[i][j]=LONG_MAX;
           for (k=i; k<j; k++)
               if (nrmin[i][j]>nrmin[i][k]+nrmin[k+1][j]+d[i-1]*d[k]*d[j])
                  {nrmin[i][j]=nrmin[i][k]+nrmin[k+1][j]+d[i-1]*d[k]*d[j];
                   nrmin[j][i]=k;
                  }
          }
 fout<<nrmin[1][n]<<'\n';
 return 0;
}