Cod sursa(job #3183950)

Utilizator DomnulMilandruMilandru Nicon-David DomnulMilandru Data 13 decembrie 2023 18:57:56
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.34 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream cin("podm.in");
ofstream cout("podm.out");
int n,j;
vector<long long> A;
long long dp[501][501];
//long long ind[501][501];
int main()
{
    cin>>n;
    A.resize(n+1);
    for(int i=0;i<=n;i++)
      cin>>A[i];
    for(int k=1;k<n;k++)
       for(int i=1;i<=n-k;i++)
       {
           j=i+k;
           //cout<<i<<" "<<j<<'\n';
           long long mini=LLONG_MAX;
           int poz;
           for(int a=i;a<=j-1;a++)
             {
                 long long s=dp[i][a]+dp[a+1][j]+A[i-1]*A[j]*A[a];
                 if(mini>s)
                 {
                     mini=s;
                     poz=a;
                 }
             }
         dp[i][j]=mini;
         //ind[i][j]=poz;
       }
    cout<<dp[1][n]<<'\n';
    //for(int i=1;i<=n;i++)
   // {
    //    for(int j=1;j<=n;j++)
     //     cout<<ind[i][j]<<" ";
    //    cout<<'\n';
  //  }
    return 0;
}