Cod sursa(job #410109)
| Utilizator | Data | 4 martie 2010 09:26:30 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include<stdio.h>
#define INF 1000001
#define Nmx 502
int a[Nmx][Nmx],n,d[Nmx];
void podm()
{
for(int nr=2;nr<=n;++nr)
{
for(int i=1;i<=n-nr+1;++i)
{
int j=i+nr-1;
a[i][j]=INF;
for(int k=i;k<j;++k)
if(a[i][j]>a[i][k]+a[k+1][j]+d[i]*d[k+1]*d[j+1])
a[i][j]=a[i][k]+a[k+1][j]+d[i]*d[k+1]*d[j+1];
}
}
printf("%d\n",a[1][n]);
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n+1;++i)
scanf("%d",&d[i]);
podm();
return 0;
}
