Cod sursa(job #473528)

Utilizator ionutz32Ilie Ionut ionutz32 Data 30 iulie 2010 01:03:01
Problema Parantezare optima de matrici Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

const long long inf=1<<18;

int n,d[505],i,j,ln,col;
long long a[505][505];

int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    scanf("%d",&n);
    for (i=0;i<=n;++i)
        scanf("%d",&d[i]);
    for (i=2;i<=n;++i)
        for (ln=1,col=i;col<=n;++ln,++col)
        {
            a[ln][col]=inf;
            for (j=ln;j<col;++j)
                if (a[ln][j]+a[j+1][col]+1LL*d[ln-1]*d[j]*d[col]<a[ln][col])
                    a[ln][col]=a[ln][j]+a[j+1][col]+1LL*d[ln-1]*d[j]*d[col];
        }
    printf("%lld",a[1][n]);
    return 0;
}