Cod sursa(job #1527570)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 18 noiembrie 2015 13:00:09
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
#include <algorithm>

#define DIM 512
#define INF 1000000000
using namespace std;

int N, V[DIM], D[DIM][DIM];

int main ()
{
    freopen ("podm.in" ,"r", stdin );
    freopen ("podm.out","w", stdout);

    scanf ("%d", &N); N ++;
    for (int i = 1; i <= N; i ++)
        scanf ("%d", &V[i]);

    for (int i = 1; i <= N; i ++)
        for (int j = i + 2; j <= N; j ++)
            D[i][j] = INF;



    for (int p = 1; p <= N; p ++)
        for (int i = 1, j = i + p - 1; j <= N; i ++, j ++)
            for (int k = i + 1; k < j; k ++)
                D[i][j] = min (D[i][j], D[i][k] + D[k][j] + V[i] * V[k] * V[j]);

    printf ("%d\n", D[1][N]);

    fclose (stdin );
    fclose (stdout);

    return 0;
}