Cod sursa(job #2477107)
| Utilizator | Data | 19 octombrie 2019 17:24:31 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
#include <fstream>
using namespace std;
#define INF 100000000000
ifstream fin("podm.in");
ofstream fout("podm.out");
long long n,L[100001],C[100001],X[100001][100001];
int main()
{
fin >> n;
int i,j,k;
fin >> L[1] >> C[1];
for (i=2;i<=n+1;++i)
{
L[i]=C[i-1];
fin >> C[i];
}
for (i=n-1;i>=1;--i)
{
for (j=i+1;j<=n;++j)
{
X[i][j]=INF;
for (k=i;k<=j-1;++k)
{
X[i][j]=min(X[i][j],X[i][k]+X[k+1][j]+L[i]*C[k]*C[j]);
}
}
}
fout << X[1][n];
fin.close();
fout.close();
return 0;
}
