Cod sursa(job #795339)

Utilizator TheShadowsAlexandru Cristian TheShadows Data 8 octombrie 2012 12:57:50
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
using namespace std;
const bool debug=false;
long long d[505], nr[505][505]; const long long INF = 999999999999;
int main(){
    ifstream in("podm.in");
    ofstream out("podm.out");
    int n;
    long long val, min; in>>n;
    for(int i = 1; i<=n+1;++i)
        in>>d[i];
    for(int i=n; i>=1; --i){
        for(int j=i+1; j<=n; ++j){
            min=INF;
            for(int k=i; k<j; ++k){
                val = nr[i][k] + nr[k+1][j] + (d[i] * d[k+1] * d[j+1]);
                if(min>val) min=val;
            }
            nr[i][j]=min;
        }
    }
    out<<nr[1][n]<<"\n";
    for(int i=1; debug && i<=n; ++i){
        for(int j=1; j<=n; ++j)
            out<<nr[i][j]<<" ";
        out<<"\n";
    }
    return 0;
}