Cod sursa(job #1245612)

Utilizator danyro364Savu Ioan Daniel danyro364 Data 19 octombrie 2014 18:04:12
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#define nmax 501
using namespace std;
FILE *f=fopen("podm.in","r"),*g=fopen("podm.out","w");
unsigned long long q[nmax][nmax];
int main()
{
    int i,lg,k,j,v[nmax],n;
    unsigned long long mini,aux;
    fscanf(f,"%d",&n);
    for(i=1;i<=n+1;i++)
        fscanf(f,"%d",&v[i]);
    fclose(f);
    for(lg=1;lg<n;lg++)
        for(i=1;i<=n-lg;i++)
    {j=i+lg;
    mini=99999999999999999;
        for(k=i;k<j;k++)
        {
            aux=q[i][k]+q[k+1][j]+(long long)v[i]*v[k+1]*v[j+1];
            if(mini>aux)
                mini=aux;
        }
        q[i][j]=mini;
    }
    fprintf(g,"%I64d",q[1][n]);
    fclose(g);
    return 0;
}