Cod sursa(job #1312473)

Utilizator refugiatBoni Daniel Stefan refugiat Data 9 ianuarie 2015 16:10:28
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<iostream>
#include<fstream>
#include<stdio.h>
using namespace std;

int main()
{
    ifstream si;
    si.open("podm.in");

    ofstream so;
    so.open("podm.out");
    //FILE*so=fopen("podm.out","w");
    int n;
    si>>n;
    long long d[n+1];
    int i;
    for(i=0;i<=n;++i)
        si>>d[i];
    long long m[n+1][n+1];
    m[n][n]=0;
    for(i=n-1;i>0;--i)
    {
        m[i][i]=0;
        m[i][i+1]=d[i-1]*d[i]*d[i+1];
    }
    int j,k;
    for(i=2;i<n;++i)
        for(j=n-i;j>0;--j)
        {
            long long minn=m[j+1][j+i]+d[j-1]*d[j]*d[j+i];
            for(k=j+1;k<j+i;++k)
                if(minn>m[j][k]+m[k+1][j+i]+d[j-1]*d[k]*d[j+i])
                    minn=m[j][k]+m[k+1][j+i]+d[j-1]*d[k]*d[j+i];
            m[j][j+i]=minn;
        }
    so<<m[1][n];
}