Cod sursa(job #3324292)

Utilizator TeodoRazvanStancu Teodor-Razvan TeodoRazvan Data 21 noiembrie 2025 22:12:54
Problema Parantezare optima de matrici Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");

long long int n, dim[1001], a[1001][1001];

void paranteze()
{
     int k, i, j, lin, m;
     for(lin=1;lin<=n-1; lin++)
        for(i=1; i<=n-lin;i++)
     {
         j=i+lin;
         a[i][j]=1E17+1;
         for(k=i;k<=j-1; k++)
         {
             m=a[i][k]+a[k+1][j]+dim[i]*dim[k+1]*dim[j+1];
             if (a[i][j]>m)
             {
                 a[i][j]=m;
                 a[j][i]=k;
             }
         }
     }
     fout<<a[1][n]<<endl;
}
void afisare()
{
    int i, j;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
           cout<<a[i][j]<<" ";
        cout<<endl;}
}
void drum(int lin, int col)
{ int k=a[col][lin];
  if (k!=lin) drum(lin, k);
  if (k+1!=col) drum(k+1, col);
  cout<<lin<<" "<<col<<endl;

}
int main()
{
    fin>>n;
    int i;
    for(i=1;i<=n+1; i++)
        fin>>dim[i];
    paranteze();
    return 0;
}