Cod sursa(job #1801118)

Utilizator VladG26Ene Vlad-Mihai VladG26 Data 8 noiembrie 2016 17:58:06
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <cstdio>
#define INF 1<<62;
using namespace std;
long long dp[501][501],d[501];
int n;
void citire()
{
    scanf("%d",&n);
    for(int i=0;i<=n;i++)
        scanf("%lld",&d[i]);
}
long long minF(int a,int b)
{
    long long minRez=9999999999;
    for(int k=a;k<=b;k++)
    minRez=min(minRez,dp[a][k]+dp[k+1][b+1]+d[a-1]*d[k]*d[b+1]);
    return minRez;
}
void solve()
{
    for(int z=2;z<=n;z++)
    for(int i=1,j=z;j<=n;i++,j++)
        dp[i][j]=minF(i,j-1);

}
int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    citire();
    solve();
    printf("%lld",dp[1][n]);

    return 0;
}