Mai intai trebuie sa te autentifici.
Cod sursa(job #987862)
Utilizator | Data | 21 august 2013 16:51:46 | |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <cstdio>
#include <algorithm>
using namespace std;
const long long inf=1<<25;
long long i,j,l,m[501][501],n,d[502],k;
int main () {
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%I64d",&n);
for(i=0;i<=n;i++)
scanf("%I64d",&d[i]);
for(l=2;l<=n;l++){
for(i=1;i<=n-l+1;i++){
j=i+l-1;
m[i][j]=inf;
for(k=1;k<=j-1;k++)
m[i][j]=min(m[i][j],m[i][k]+m[k+1][j]+d[i-1]*d[k]*d[j]);
}
}
printf("%I64d\n",m[1][n]);
return 0;
}