Cod sursa(job #2691695)

Utilizator Iustin01Isciuc Iustin - Constantin Iustin01 Data 29 decembrie 2020 17:11:27
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
#define MAX 505
#define oo 1LL << 60
using namespace std;

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

long long int n, d[MAX], dp[MAX][MAX];

int main(){
    in>>n;
    for(int i = 0; i <= n; i++)
        in>>d[i];

    for(int i = 1; i <= n; i++)
        dp[i][i + 1] = d[i - 1] * d[i] * d[i + 1];

    for(int diff = 2; diff < n; diff++)
    for(int i = 1; i <= n - diff; i++){
        int j = i + diff;
        dp[i][j] = oo;
        for(int k = i; k < j; k++)
            dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + d[i - 1] * d[k] * d[j]);
    }
    out<<dp[1][n]<<" ";
}