Cod sursa(job #385370)

Utilizator RegeleUmbrelorPopescu Mihai RegeleUmbrelor Data 22 ianuarie 2010 17:47:21
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
using namespace std;
#include<stdio.h>
const long long oo = (long long)1<<62;
long long m[505][505], n, d[505];

void citire()
{
    freopen("podm.in", "r", stdin);
    scanf("%lld", &n);
    for(int i=0;i<=n;++i)
        scanf("%lld", &d[i]);

}

void calcul()
{
    int i,c,k;
    for(i=1;i<=n;++i)
        m[i][i]=0;
    for(c=1;c<n;++c)
        for(i=1;i<=n-c;++i)
        {
            m[i][i+c]=oo;
            for(k=i;k<i+c;k++)
                if(m[i][i+c]>m[i][k]+m[k+1][i+c]+ d[i-1]*d[k]*d[i+c])
                    m[i][i+c]=m[i][k]+m[k+1][i+c]+ d[i-1]*d[k]*d[i+c];
        }
}

int main()
{
    citire();
    calcul();
    freopen("podm.out", "w", stdout);
    printf("%lld", m[1][n]);
    return 0;
}