Cod sursa(job #2036879)
| Utilizator | Data | 11 octombrie 2017 10:40:29 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
#define INF 200000000000000001
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
unsigned long long n,i,j,k,x[501],L;
unsigned long long D[501][501];
int main()
{
fin >> n;
n++;
for (i=1; i<=n; i++)
fin >> x[i];
for (L=3; L<=n; L++)
for (i=1; i+L-1<=n; i++)
{
j = i+L-1;
D[i][j] = INF;
for (k=i+1; k<j; k++)
D[i][j] = min(D[i][j], D[i][k]+D[k][j]+x[i]*x[k]*x[j]);
}
fout << D[1][n];
return 0;
}
