Cod sursa(job #376112)
| Utilizator | Data | 20 decembrie 2009 18:59:19 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
# include <stdio.h>
int a[600],m[600][600],i,j,l,k,min,n;
int main ()
{
freopen ("podm.in","r",stdin);
freopen ("podm.out","w",stdout);
scanf ("%i",&n);
for (i=1;i<=n+1;i++)
scanf ("%i",&a[i]);
for (i=1;i<n;i++)
for (j=1;j<n;j++)
{
l=j+i;
min=32000;
for (k=j;k<l;k++)
{
if (min>m[j][k]+m[k+1][l]+a[j]*a[k+1]*a[l+1])
min=m[j][k]+m[k+1][l]+a[j]*a[k+1]*a[l+1];
}
m[j][l]=min;
}
printf ("%i",m[1][n]);
return 0;
}