Cod sursa(job #1334868)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 4 februarie 2015 18:57:58
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#define inf (1LL<<63)-1
using namespace std;

ifstream f("podm.in");
ofstream g("podm.out");
 int n,d[505]; long long dp[505][505];

int main()
{ int i,j,x,len;
   f>>n;
   for(i=0;i<=n;i++)
    f>>d[i];

  for(i=1;i<=n;i++)
   dp[i][i+1]=d[i-1]*d[i]*d[i+1];

  for(len=3;len<=n;len++)
   for(i=1;i<=n-len+1;i++)
   { j=i+len-1;
       dp[i][j]=inf;

     for(x=i;x<j;x++)
      dp[i][j]=min(dp[i][j],(ll)dp[i][x]+dp[x+1][j]+1LL*d[i-1]*d[x]*d[j]);

   }

   g<<dp[1][n]<<"\n";
    return 0;
}