Cod sursa(job #606321)
| Utilizator | Data | 3 august 2011 19:29:23 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include<fstream.h>
long long a[501][501],m;
int dim[501],i,n,j,d,k;
int main()
{ifstream f("podm.in");
ofstream g("podm.out");
f>>n;
for(i=0;i<=n;i++)
f>>dim[i];
for(i=1;i<=n;i++)
a[i][i]=0;
for(i=1;i<n;i++)
a[i][i+1]=dim[i-1]*dim[i]*dim[i+1];
for(d=2;d<n;d++)
{for(i=1;i<=n-d;i++)
{a[i][i+d]=1LL;
for(k=i;k<i+d;k++)
{m=a[i][k]+a[k+1][i+d]+dim[i-1]*dim[k]*dim[i+d];
if(a[i][i+d]>m)
a[i][i+d]=m;}}}
g<<a[1][n];
return 0;}
