Cod sursa(job #1526441)

Utilizator TibiraducanuTiberiu Raducanu Tibiraducanu Data 16 noiembrie 2015 11:50:20
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>

using namespace std;

int v[505];
long long mat[505][505];

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

    int n,i,j,k;

    long long x,minn;

    scanf("%d",&n);

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

    for(i=1;i<=n;i++) mat[i][i]=0;

    for(j=1;j<n;j++)
    {
        for(i=1;i<=n;i++)
        {
            if((i+j)>n) break;

            minn=0x7fffffffll*0x7fffffffll;

            for(k=i;k<i+j;k++)
            {
                x=mat[i][k]+mat[k+1][i+j]+v[i-1]*v[k]*v[i+j];

                if(x<minn) minn=x;
            }

            mat[i][i+j]=minn;
        }
    }

    printf("%lld",mat[1][n]);

    return 0;
}