Cod sursa(job #1527635)

Utilizator andi12Draghici Andrei andi12 Data 18 noiembrie 2015 15:15:53
Problema Parantezare optima de matrici Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>

using namespace std;
long long d[501][501];
long long a[501];
int main()
{
    FILE *in,*out;
    in=fopen("podm.in","r");
    out=fopen("podm.out","w");
    long long n,i,min,var,j,k;
    fscanf(in,"%lld",&n);
    for(i=1;i<=n+1;i++)
        fscanf(in,"%lld",&a[i]);
    for(i=1;i<=n;i++)
        d[i][i]=0;
    for(i=n-1;i>=1;i--)
        for(j=i+1;j<=n;j++)
        {
            min=999999;
            for(k=i;k+1<=j;k++)
            {
                if(d[i][k]+d[k+1][j]+a[i]*a[k+1]*a[j+1]<min)
                    min=d[i][k]+d[k+1][j]+a[i]*a[k+1]*a[j+1];
            }
            d[i][j]=min;
        }
    fprintf(out,"%lld",d[1][n]);
    return 0;
}