Cod sursa(job #553831)
Utilizator | Mandu Dragos drag0s93 | Data | 14 martie 2011 12:50:28 |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include<stdio.h>
long long n,d[1001],a[1001][1001];
long long k,i,j;
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%lld",&n);
for(int z=1;z<=n+1;++z)
scanf("%lld",&d[z]);
for(i=n;i>=1;--i)
for(j=i+1;j<=n;++j)
{
a[i][j]=10000000;
for(k=i;k<j;++k)
if (a[i][j] > a[i][k]+a[k+1][j]+d[i]*d[j+1]*d[k+1])
a[i][j]=a[i][k]+a[k+1][j]+d[i]*d[j+1]*d[k+1];
}
printf("%lld", a[1][n]);
return 0;
}