Cod sursa(job #2077679)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 28 noiembrie 2017 14:18:26
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>
#include <iostream>
#define INF 2000000000000000000

using namespace std;
long long v[501];
long long d[501][501];
int main()
{
    FILE *fin=fopen ("podm.in","r");
    FILE *fout=fopen ("podm.out","w");
    int n,i,l,k,j;
    fscanf (fin,"%d",&n);
    n++;
    for (i=1;i<=n;i++)
        fscanf (fin,"%lld",&v[i]);
    /// d[i][j] = inmultiri pt a anula secventa i..j
    for (i=1;i<=n;i++)
        for (j=i+2;j<=n;j++)
            d[i][j]=INF;
    for (l=3;l<=n;l++){
        for (i=1;i+l-1<=n;i++){
            j=i+l-1;
            /// avem secventa i..j
            for (k=i+1;k<j;k++){
                /// il anulez pe i cu k
                d[i][j]=min (d[i][j],d[i][k]+d[k][j]+v[i]*v[k]*v[j]);
            }
        }
    }
    fprintf (fout,"%lld",d[1][n]);
    return 0;
}