Cod sursa(job #2566322)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 2 martie 2020 20:31:34
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

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

long long n, i, d, k;
long long D[505];
long long m[505][505];

int main(){
    fin >> n;
    for (i=0; i<=n; i++){
        fin >> D[i];
    }
    for (i=1; i<=n; i++){
        m[i][i] = 0;
    }
    for (i=1; i<n; i++){
        m[i][i+1] = D[i-1]*D[i]*D[i+1];
    }
    for (i=2; i<n; i++){
        for (d=1; i+d<=n; d++){
            m[d][i+d] = LLONG_MAX;
            for (k=d; k<=i+d-1; k++){
                m[d][i+d] = min (m[d][i+d], m[d][k] + m[k+1][i+d] + D[d-1]*D[k]*D[i+d]);
            }
        }
    }
    fout << m[1][n];
    return 0;
}