Cod sursa(job #1402772)

Utilizator emanuel_rRamneantu Emanuel emanuel_r Data 26 martie 2015 20:17:10
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<iostream>
#include<fstream>
#include<cmath>
#define oo 10000000000000000

using namespace std;

ifstream f("podm.in");
ofstream g("podm.out");

long long dp[505][505], d[505];
int n;

void citire()
{
    f>>n;
    for(int i=0; i<=n; i++)
        f>>d[i];
}

void dinam()
{
    int pas,i,j,k;
    for(i=1;i<=n;i++)
        for(j=i;j<=n;j++)
            dp[i][j]=oo;
    for(i=1;i<=n;i++)
        dp[i][i]=0;
    for(pas=1; pas<n; pas++)
        for(i=1; i<=n-pas; i++){
            j = i + pas;
            for(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]);
        }
    g<<dp[1][n]<<"\n";
}

int main()
{
    citire();
    dinam();
    return 0;
}