Cod sursa(job #2565440)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 2 martie 2020 14:14:29
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
#define inf 9223372036854775807LL
#define dim 505
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long n,v[dim],d[dim][dim];
int i,l,j;
int main()
{
    /// d[l][i] parantezare optima pt elem i...i+l-1;
   fin>>n;
    for(i=1;i<=n+1;i++){
        fin>>v[i];
    }
 //   for(i=1;i<=n-3+1;i++)
  //      d[3][i]=v[i]*v[i+1]*v[i+2];
    for(l=3;l<=n+1;l++){
        for(i=1;i<=n+1-l+1;i++){
            /// poz
            d[l][i]=inf;
            for(j=i+1;j<i+l-1;j++){
                d[l][i]=min(d[l][i],d[j-i+1][i]+d[l-(j-i)][j]+v[i]*v[j]*v[i+l-1]);
            }
//            cout<<l<<" "<<i<<" "<<d[l][i]<<" "<<v[i]<<" "v[j]*v[i+l-1]<<endl;
        }
    }
    fout<<d[n+1][1];
}