Cod sursa(job #588397)
| Utilizator | Data | 7 mai 2011 20:54:05 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<fstream.h>
long long a[502][502],m;
int dim[502],i,n,j,l,k;
int main()
{ifstream f("podm.in");
ofstream g("podm.out");
f>>n;
for(i=1;i<=n+1;i++)
{f>>dim[i];
a[i][i]=0;}
for(i=1;i<n;i++)
a[i][i+1]=dim[i]*dim[i+1]*dim[i+2];
for(k=1;k<n;k++)
for(i=1;i<=n-k;i++)
{j=i+k;
a[i][j]=1LL;
for(l=i;l<j;l++)
if(a[i][j]>(m=a[i][l]+a[l+1][j]+dim[i]*dim[l+1]*dim[j+1]))
a[i][j]=m,a[j][i]=l;}
g<<a[1][n];
f.close();
g.close();
return 0;}
