Cod sursa(job #1606890)

Utilizator Darius15Darius Pop Darius15 Data 20 februarie 2016 17:31:44
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb

#include <fstream>
#include <cstdlib>
#include <iomanip>

using namespace std;

ifstream fi("podm.in");
ofstream fo("podm.out");
int n;
long long x[502];
long long a[501][501];

long long Min(int st, int dr) {
  int k;
  long long vmin, aux;

  vmin = 1LL << 60;
  for (k = st; k <= dr - 1; k++) {
    aux = a[st][k] + a[k+1][dr] + x[st] * x[k+1] * x[dr+1];
    if (aux < vmin)
      vmin = aux;
  }
  return vmin;
}

int main() {
  int l, d, i;

  fi >> n;
  for (i = 1; i <= n + 1; i++)
    fi >> x[i];
  for (d = 1; d <= n - 1; d++)
    for (l = 1; l <= n - d; l++)
      a[l][l + d] = Min(l, l + d);
  fo << a[1][n];
  return 0;
}