Cod sursa(job #1289016)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 9 decembrie 2014 12:58:17
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
using namespace std;

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

long long n, m, i, j, k, ok ,minim, maxim;
long long a[505][505], v[505], d, INF;

int minimal(int a, int b){
    if(a < b)
        return a;
    else
        return b;
}

void set(){
    INF = 200000000000000000;
    for(d = 2; d <= n - 1; d ++){
        for(i = 1; i + d <= n; i ++){
            j = i + d;
            a[i][j] = INF;
            for(k = i + 1; k <= j - 1; k ++)
                a[i][j] = minimal(a[i][j], (a[i][k] + a[k][j] + (v[i] * v[k] * v[j])));
        }
    }
    return;
}

void write(){
    fout << a[1][n] << "\n";
    return;
}

void read(){
    fin >> n; n ++;
    for(i = 1; i <= n; i ++)
        fin >> v[i];
    return;
}

int main(){

    read();
    set();
    write();

    return 0;
}