Cod sursa(job #1533351)

Utilizator vnedelcuVictor Andrei Nedelcu vnedelcu Data 22 noiembrie 2015 14:04:14
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>

unsigned long long v[501];
unsigned long long m[501][501];///m[i][j]=nr optim de a inmultiri pt matricele de la i la j

int main()
{
    FILE *f;
    int n,i,j,k;
    unsigned long long aux;

    f=fopen("podm.in","r");
    fscanf(f,"%d",&n);
    for (i=1; i<=n+1; i++)
        fscanf(f,"%llu",&v[i]);
    fclose(f);

    ///costul de a inmulti o singura matrice este 0

    for (j=1; j<n; j++)
    {
        for (i=1; i<=n-j; i++)
        {
            m[i][i+j]=100000000000000000ULL;
            for (k=i; k<i+j; k++)
            {
                aux=m[i][k]+m[k+1][j+i]+v[i]*v[k+1]*v[j+i+1];
                if (aux < m[i][i+j])
                    m[i][i+j]=aux;
            }
        }
    }

    f=fopen("podm.out","w");
    fprintf(f,"%llu",m[1][n]);
    fclose(f);
}