Cod sursa(job #1024499)

Utilizator macajouMaca George macajou Data 8 noiembrie 2013 19:17:18
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <algorithm>
#define inf 100000000000000000LL

using namespace std;

unsigned long long a[501][501],d[505];
int n;

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

void citire()
{
    int i;
    fin>>n;
    for(i=0;i<=n;i++)
        fin>>d[i];
    for(i=1;i<=n;i++)
        a[i][i]=0;
    for(i=1;i<n;i++)
        a[i][i+1]=d[i-1]*d[i]*d[i+1];
}

void par()
{
    int i,k,dg;
    for(dg=2;dg<n;dg++)
        for(i=1;i<=n-dg;i++)
            {
                a[i][i+dg]=inf;
                for(k=i;k<i+dg;k++)
                    a[i][i+dg]=min(a[i][i+dg],a[i][k]+a[k+1][i+dg]+d[i-1]*d[k]*d[i+dg]);
            }
}

int main()
{

    citire();
    par();
    fout<<a[1][n];
    fin.close();
    fout.close();

    return 0;
}