Cod sursa(job #701805)
| Utilizator | Data | 1 martie 2012 17:55:39 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include<stdio.h>
int n,x[500],a[500][500];
int main()
{
int i,j,k;
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d ",&n);
for(i=1;i<=n+1;i++)
scanf("%d ",&x[i]);
a[n][1]=0;
for(i=n-1;i>=1;i--)
for(j=i+1;j<=n;j++)
{
a[i][j]=11000;
for(k=i;k<j;k++)
if(a[i][j]>(a[i][k]+a[k+1][j]+x[i]*x[k+1]*x[j+1]))
a[i][j]=a[i][k]+a[k+1][j]+x[i]*x[k+1]*x[j+1];
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
printf("%d ",a[1][n]);
}
