Cod sursa(job #1724737)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 4 iulie 2016 02:43:27
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <bits/stdc++.h>
using namespace std;
typedef long long i64;

const i64 INF = 1e18;

i64 dp[505][505];
int  v[505];

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

    scanf("%d",&n);
    for(int i=0; i<=n; ++i)
        scanf("%d",&v[i]);

    for(int i=1;   i<=n; ++i) {
    for(int j=i-1; j>=0; --j) { if(i-j>1) dp[j][i] = INF;
    for(int k=j+1; k<i;  ++k) {
        dp[j][i] = min(dp[j][i], i64(v[i])*v[j]*v[k]+dp[j][k]+dp[k][i]);
    }}}

    printf("%lld\n",dp[0][n]);

    fclose(stdin);
    fclose(stdout);
    return 0;
}