Cod sursa(job #1929907)

Utilizator clara17Sima Clara clara17 Data 18 martie 2017 12:07:41
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");

int n,i,j,k;
long long d[505];
long long M[505][505];
long long minim,x,o;

int main()
{
    fin>>n;
    for(i=0;i<=n;i++)
        fin>>d[i];
    for(i=1;i<=n-1;i++)
        M[i][i+1]=d[i-1]*d[i]*d[i+1];
    for(x=2;x<n;x++)
    {
        for(i=1;i<=n-x;i++)
        {
            M[i][i+x]=100000000000000000LL;
            for(k=i;k<i+x;k++)
            {
                o=M[i][k]+M[k+1][i+x]+d[i-1]*d[k]*d[i+x];
                if(o<M[i][i+x])
                    M[i][i+x]=o;
            }
        }
    }
    fout<< M[1][n] << '\n';
    fin.close();
    fout.close();
    return 0;
}