Cod sursa(job #1770249)

Utilizator MiricaMateiMirica Matei MiricaMatei Data 3 octombrie 2016 22:16:16
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int v[505];
long long dp[505][505];
int main(){
    freopen("podm.in", "r", stdin);
    freopen("podm.out", "w", stdout);
    int n, i, j, k;
    scanf("%d", &n);
    for (i = 0; i <= n; i ++)
        scanf("%d", &v[i]);
    for (i = 2; i <= n; i ++)
        for (j = i - 2; j >= 0; j --)
            dp[j][i] = (1LL << 61) - 1;
    for (i = 1; i <= n; i ++)
        for (j = i - 1; j >= 0; j --)
            for (k = j + 1; k < i; k ++)
                dp[j][i] = min(dp[j][i], 1LL * v[i] * v[j] * v[k] + dp[j][k] + dp[k][i]);
    printf("%lld\n", dp[0][n]);
    return 0;
}