Cod sursa(job #2221339)
| Utilizator | Data | 13 iulie 2018 19:44:46 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("podm.in");
ofstream g ("podm.out");
long long v[505], a[505][505];
const long long oo=1<<30;
int main()
{
int i, n, l, j, k, q;
f>>n;
for(i=1; i<=n+1; i++)
f>>v[i];
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(i<j) a[i][j]=oo;
for(l=2; l<=n+1; l++)
{
for(i=1; i<=n+1-l; i++)
{
j=i+l-1;
for(k=i; k<=j-1; k++)
{
q=a[i][k]+a[k+1][j]+v[i]*v[k+1]*v[j+1];
if(q<a[i][j]) a[i][j]=q;
}
}
}
g<<a[1][n];
return 0;
}
