Cod sursa(job #2565484)

Utilizator robx12lnLinca Robert robx12ln Data 2 martie 2020 14:22:09
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");

int N;
long long dp[505][505], v[505];
int main(){
    fin >> N; N++;
    for( int i = 1; i <= N; i++ )
        fin >> v[i];

    for( int i = 1; i <= N; i++ ){
        dp[i][i] = 0;
        dp[i][i + 1] = 0;
    }

    for( int lg = 3; lg <= N; lg++ ){
        for( int i = 1; i + lg - 1 <= N; i++ ){
            int j = i + lg - 1;
            dp[i][j] = (1LL<<62);
            for( int k = i + 1; k < j; k++ )
                dp[i][j] = min( dp[i][j], v[i] * v[k] * v[j] + dp[i][k] + dp[k][j] );
        }
    }
    fout << dp[1][N] << "\n";
    return 0;
}