Cod sursa(job #3256514)

Utilizator AlexandruTigauTigau Alexandru AlexandruTigau Data 14 noiembrie 2024 19:35:26
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;
 ifstream fin("podm.in");
 ofstream fout("podm.out");
  
  long long d[505], nr[505][505];
  
 int main()
 {
   int n;
   fin>>n;
   for(int i=0;i<=n;i++)
      fin>>d[i];
      
    // matricea i are nr linii d[i-1]  nr coloane d[i]  
   // teodor
   for(int i=1;i<=n-1;i++) // matr(i) * matr(i+1)
      nr[i][i+1]=d[i-1]*d[i]*d[i+1];
      
  for(int w=3;w<=n;w++)
  {
    int i=1,j=w;
    while(j<=n)
    {
      long long  mn=1e18;
      //   (  matr(i).......matr(k)  )*(  matr(k+1).........matr(j)  )
      for(int k=i; k<=j-1; k++){
        mn=min(mn,nr[i][k]+nr[k+1][j]+d[i-1]*d[k]*d[j]);
        
        
      }
      nr[i][j]= mn;
      i++,j++;
    }
    
    
  }
  
  fout<<nr[1][n]; 
   
 return 0;  
}