Cod sursa(job #1858166)
Utilizator | Data | 27 ianuarie 2017 08:46:49 | |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
const long long f_mare = 1e12;
int n, i, j, w, k;
long long sol[505][505], a[505];
int main() {
f >> n;
for (i = 0; i <= n; i++)
f >> a[i];
for (i = 1; i < n; i++)
sol[i][i+1] = a[i-1]*a[i]*a[i+1];
for (w= 3; w <= n; w++)
for (i = 1; i+w<=n+1; i++){
j = i+w-1;
sol[i][j] = f_mare;
for (k = i; k < j; k++)
sol[i][j] = min(sol[i][j], sol[i][k]+sol[k+1][j]+a[i-1]*a[k]*a[j]);
}
return 0;
}