Cod sursa(job #2544897)

Utilizator marius004scarlat marius marius004 Data 12 februarie 2020 17:25:38
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

std::ifstream f("podm.in");
std::ofstream g("podm.out");

const long long INF = (1LL << 61);
const int NMAX = 505;
long long n,v[NMAX],D[NMAX][NMAX];

int main(){
    
    f >> n;
    
    n++;
    for(int i = 1;i <= n;++i)
        f >> v[i];
    
    for(int len = 3;len <= n;++len){
        for(int i = 1;i + len - 1 <= n;++i){
            
            int j = i + len - 1;
            
            D[i][j] = INF;
            for(int k = i + 1;k < j;++k){
                
                if(D[i][j] > D[i][k] + D[k][j] + v[i] * v[j] * v[k])
                    D[i][j] = D[i][k] + D[k][j] + v[i] * v[j] * v[k];
            }
        }
    }
    
    g << D[1][n];
    
    return 0;
}