Cod sursa(job #1739344)

Utilizator PaulCbnCiobanu Paul PaulCbn Data 9 august 2016 11:58:10
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <cstdio>
#define NMAX 505
#define inf 200000000
using namespace std;

int N;
int d[NMAX];
long long dp[NMAX][NMAX];

void citire()
{
    scanf("%d",&N);
    for(int i=0; i<=N; i++)
        scanf("%d",&d[i]);
}

void rezolvare()
{
    for(int x=1; x<=N; x++)
        for(int y=1; y<N-x+1; y++)
        {
            int i = y;
            int j = x+y;

            int minim = inf;
            for(int k=i; k<=j-1; k++)
                minim = min(minim,dp[i][k]+dp[k+1][j]+d[i-1]*d[k]*d[j]);
            dp[i][j]=minim;
        }
    cout<<dp[1][N];


}

int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    citire();
    rezolvare();
    return 0;
}