Cod sursa(job #2977763)
| Utilizator | Data | 12 februarie 2023 13:29:41 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
long long n,b[505],a[505][505],i,d,j,t,k;
int main()
{
f>>n;
for( i=0;i<=n;i++)
f>>b[i];
for( i=1;i<n;i++)
a[i][i+1]=b[i-1]*b[i]*b[i+1];
for( d=2;d<n;d++)
{
for( i=1;i<=n-d;i++)
for( t=i;t<i+d;t++)
{
if(a[i][i+d]==0)
a[i][i+d]=a[i][t]+a[t+1][i+d]+b[i-1]*b[t]*b[i+d];
else
a[i][i+d]=min(a[i][t]+a[t+1][i+d]+(b[i-1]*b[t]*b[i+d]),a[i][i+d]);
}
}
g<<a[1][n];
return 0;
}
