Cod sursa(job #2023896)

Utilizator VladG26Ene Vlad-Mihai VladG26 Data 19 septembrie 2017 17:41:31
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <cstdio>
using namespace std;
int vCit[505],n;
long long dp[505][505];
const long long inf=LONG_LONG_MAX;
void citire()
{
    scanf("%d",&n);
    for(int i=0;i<=n;i++)
        scanf("%d",&vCit[i]);
}
long long minK(int a,int b)
{
    long long r=inf;
    for(int k=a;k<=b;k++)
    {
        r=min(r,dp[a][k]+dp[k+1][b+1]+vCit[a-1]*vCit[k]*vCit[b+1]);
    }
    return r;
}
void dinamica()
{
    for(int c=2;c<=n;c++)
        for(int i=1,j=c;j<=n;i++,j++)
            dp[i][j]=minK(i,j-1);
}
int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    citire();
    dinamica();
    printf("%lld",dp[1][n]);

    return 0;
}