Cod sursa(job #1527572)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 18 noiembrie 2015 13:01:55
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <cstdio>
#include <algorithm>

#define DIM 512
#define INF 10000000000000000LL
using namespace std;

int V[DIM], N;
long long 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] * 1LL * V[k] * V[j]);

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

    fclose (stdin );
    fclose (stdout);

    return 0;
}