Cod sursa(job #1224064)

Utilizator o_micBianca Costin o_mic Data 29 august 2014 16:06:24
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#define MAX_LENGTH 505
#define MAX_VALUE (1<<29)

using namespace std;

long long dp[MAX_LENGTH][MAX_LENGTH];
int v[MAX_LENGTH];

long long min(long long a, long long b)
{
    if(a < b)
        return a;
    return b;
}

long long min_prod(int a[MAX_LENGTH], int n)
{
    int i, j, k;
    for(j = 2 ; j <= n ; j++)
        for(i = j - 2 ; i >= 0 ; i--)
        {
            dp[i][j] = MAX_VALUE;
            for(k = i + 1 ; k < j ; k++)
                dp[i][j] = min(dp[i][j], a[i]*a[k]*a[j] + dp[i][k] + dp[k][j]);
        }
    return dp[0][n];
}

int main()
{
    int n, i;
    fstream f("podm.in", ios::in);
    fstream g("podm.out", ios::out);
    f >> n;
    for(i = 0 ; i <= n ; i++)
        f >> v[i];
    g << min_prod(v, n);
    return 0;
}