Cod sursa(job #473529)
| Utilizator | Data | 30 iulie 2010 01:12:25 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <cstdio>
const int inf=0x7fffffff;
int n,d[505],i,j,ln,col;
int a[505][505];
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&n);
for (i=0;i<=n;++i)
scanf("%d",&d[i]);
for (i=2;i<=n;++i)
for (ln=1,col=i;col<=n;++ln,++col)
{
a[ln][col]=inf;
for (j=ln;j<col;++j)
if (a[ln][j]+a[j+1][col]+d[ln-1]*d[j]*d[col]<a[ln][col])
a[ln][col]=a[ln][j]+a[j+1][col]+d[ln-1]*d[j]*d[col];
}
printf("%d",a[1][n]);
return 0;
}
