Cod sursa(job #2294311)
| Utilizator | Data | 2 decembrie 2018 11:14:07 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 70 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <fstream>
#define For(i,a,b) for(int i=a;i<=b;i++)
#define inf 50000000000ll
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n,i,j,k,l;
long long d[502];
long long a[505][505];
int main()
{ f>>n;
For(i,1,n+1)
f>>d[i];
For(i,1,n)
For(j,i+1,n)
a[i][j]=inf;
For(i,1,n-1)
a[i][i+1]=d[i]*d[i+1]*d[i+2];
For(l,3,n)
For(i,1,n){
j=i+l-1;
For(k,i,j){
a[i][j]=min(a[i][j],d[i]*d[k+1]*d[j+1]+a[i][k]+a[k+1][j]);
}
}
g<<a[1][n];
return '\0';
}
