Cod sursa(job #2879189)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 28 martie 2022 12:06:51
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream> 
#define int long long

using namespace std;

ifstream fin ("podm.in");
ofstream fout ("podm.out");

const int NMAX = 500;
int v[NMAX + 2];
int dp[NMAX + 2][NMAX + 2];

signed main() {
  int n, i, j, len, k;

  fin >> n;
  
  n++;
  for (i = 0; i < n; ++i) 
    fin >> v[i];
  
  for (i = 1; i < n; ++i) 
    dp[i][i] = 0;

  for (len = 2; len < n; ++len) {
    for (i = 1; i < n - len + 1; ++i) {
      j = i + len - 1;
      dp[i][j] = (1ll << 62);
      for (k = i; k < j; ++k) {
        dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + v[i - 1] * v[k] * v[j]);
      }
    }   
  }
  fout << dp[1][n - 1] << "\n";
  return 0;
}