Cod sursa(job #1255377)

Utilizator hopingsteamMatraguna Mihai-Alexandru hopingsteam Data 4 noiembrie 2014 19:06:35
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define NMax 505
#define oo 1<<30
using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");

int N;
long long D[NMax],DP[NMax][NMax];

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

void Solve()
{
    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]+D[i-1]*D[k]*D[j]);

        }
}

void Print()
{
    fout<<DP[1][N]<<"\n";
}
int main()
{
    Read();
    Solve();
    Print();
    return 0;
}