Cod sursa(job #1001550)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 25 septembrie 2013 14:27:45
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>

using namespace std;

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

#define inf 1000000000

int main()
{
    int d[505],din[505][505],n;
    int x[505];
    int y[505];
    cin>>n;

    int i;
    for(i=0;i<=n;i++)
    {
        cin>>d[i];
        y[i]=d[i];
        x[i+1]=d[i];
    }
    for(i=1;i<=n;i++)
    {
        din[i][i]=0;
        cout<<din[i][i]<<' ';
    }
    cout<<endl;
    int j,k,p;
    for(k=1;k<=(n-1);k++)
    {
        for(i=1;(i+k)<=n;i++)
        {
           din[i][i+k]=inf;
           for(p=i;p<(i+k);p++)
              din[i][i+k]=minim(din[i][i+k],din[i][p]+din[p+1][i+k]+x[p]*x[p+1]*y[p+1]);
           cout<<din[i][i+k]<<' ';
        }
        cout<<endl;
    }
    cout<<din[1][n]<<endl;
    return 0;
}