Cod sursa(job #1817294)

Utilizator edi_laitinLaitin Eduard edi_laitin Data 27 noiembrie 2016 16:37:18
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");
const long long oo = 1LL<<60;
const int NMax = 505;
int N;
long long DP[NMax][NMax];
int D[NMax];

int main()
{
    fin>>N;
    for(int i = 0; i <= N; ++i)
      fin>>D[i];

    for(int Step = 1; Step < N; Step++)
      for(int i = 1; i <= N - Step; i++)
        {
          int j = i + Step;
          DP[i][j] = oo;
          for(int k = i; k < j; k++)
            DP[i][j] = min(DP[i][j], DP[i][k]+DP[k+1][j]+1LL*D[i-1]*D[k]*D[j]);
        }
    fout<<DP[1][N]<<"\n";
    return 0;
}