Mai intai trebuie sa te autentifici.
Cod sursa(job #505614)
Utilizator | Data | 3 decembrie 2010 08:47:11 | |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include<stdio.h>
#include<stdlib.h>
long long a[600][600],x[600],n,q;
long long inf = 1<<59;
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%lld",&n);
for(int i=1;i<=n+1;i++)
scanf("%lld",&x[i]);
int i,j,k;
for(i=n;i>=1;--i)
for(j=i+1;j<=n+1;j++)
{
a[i][j] = (long long)inf;
for(k=i;k<j;++k)
{
q = a[i][k] + a[k+1][j] + x[i]*x[k+1]*x[j+1];
if(a[i][j] > q)
a[i][j] = q;
}
}
printf("%lld",a[1][n]);
return 0;
}