Cod sursa(job #2351940)
| Utilizator | Data | 22 februarie 2019 20:33:27 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
unsigned long long n, i, j, d, k, minn, nr[505][505], p[505];
int main()
{
fin >> n;
for(i=1; i<=n+1; i++)
fin >> p[i];
for(d=2; d<=n; d++)
for(i=1, j=d; j<=n; i++, j++)
{
minn = nr[i][i] + nr[i+1][j] + p[i]*p[i+1]*p[j+1];
for(k=i; k<j; k++)
minn=min(minn, nr[i][k] + nr[k+1][j] + p[i]*p[k+1]*p[j+1]);
nr[i][j]=minn;
}
fout << nr[1][n];
return 0;
}
