Cod sursa(job #993682)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 4 septembrie 2013 11:54:24
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>

#define DN 505
using namespace std;

int v[DN];
long long dp[DN][DN];


int main()
{
    int n;
    ifstream f("podm.in");
    ofstream g("podm.out");
    f>>n;
    for(int i=0;i<=n;++i)
        f>>v[i];
    for(int i=0;i<=n;++i)
      dp[i][i+2]=v[i]*v[i+1]*v[i+2];

    for(int lg=3;lg<=n;++lg)
      for(int i=0;i+lg<=n;++i)
          {
              int j=i+lg;
              dp[i][j]=1ll<<60;

              for(int k=i+1;k<j;++k)
                {
                    dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+v[i]*v[j]*v[k]);
                }
          }
    g<<dp[0][n];
    return 0;
}