Cod sursa(job #505985)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 4 decembrie 2010 17:46:34
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<stdio.h>
#include<limits.h>
long a[1000][1000],dim[1000],i,n,j,k,l,m;

int main()
{freopen("podm.in","rt",stdin);
freopen("podm.out","wt",stdout);
scanf("%ld",&n);
for(i=1;i<=n+1;i++)
       scanf("%ld ",&dim[i]);
for(i=1;i<=n;i++)
       a[i][i]=0;
for(k=1;k<=n-1;k++)
       {for(i=1;i<=n-k;i++)
                 {j=i+k;
                 a[i][j]=LONG_MAX;
                 for(l=i;l<=j-1;l++)
                          {m=a[i][l]+a[l+1][j]+dim[i]*dim[l+1]*dim[j+1];
                          if(a[i][j]>m)
                                   {a[i][j]=m;
                                   a[j][i]=l;}}}}
printf("%ld\n",a[1][n]);
fclose(stdin);
fclose(stdout);
return 0;}