Cod sursa(job #1503633)

Utilizator radu_uniculeu sunt radu radu_unicul Data 16 octombrie 2015 17:39:20
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
int n,i,M,L,R,K;
long long x[501],d[501][501],bst,act;
void read(),solve();
int main()
{
    read();
    solve();
    return 0;
}
void read()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    scanf("%d",&n);
    for(i=0; i<=n; i++)scanf("%lld",&x[i]);
}
void solve()
{
    for(M=2; M<=n; M++)
    {
        for(L=0,R=M; R<=n; L++,R++)
        {
            bst=d[L][L+1]+d[L+1][R]+x[L]*x[L+1]*x[R];
            for(K=L+1; K<R; K++)
            {
                act=d[L][K]+d[K][R]+x[L]*x[K]*x[R];
                bst=bst<act?bst:act;
            }
            d[L][R]=bst;
        }
    }
    printf("%lld\n",d[0][n]);
}