Cod sursa(job #1791325)

Utilizator cristii2000cristiiPanaite Cristian cristii2000cristii Data 29 octombrie 2016 11:36:31
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <cstdio>
#include <climits>

using namespace std;

const long long inf= LLONG_MAX;
long long n, d[505], M[505][505];
void citire()
{
    scanf("%lld", &n);

    for(long long i=0; i<=n; i++)
        scanf("%lld", &d[i]);
}
void dinamic()
{
    for(long long y=1; y<n; y++)
    {
        long long i=1;
        long long j=y+1;
        while(j<=n)
        {
            long long mini= inf;
            for(long long k=i; k<j; k++)
            {
                long long tmp=M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j];
                if(tmp<mini)
                    mini=tmp;
            }
            M[i][j]=mini;

            i++;
            j++;
        }
    }
}
void afisare()
{
    printf("%lld", M[1][n]);
}
int main()
{
    freopen("podm.in", "r", stdin);
    freopen("podm.out", "w", stdout);
    citire();
    dinamic();
    afisare();
    return 0;
}