Cod sursa(job #1049521)

Utilizator mariacMaria Constantin mariac Data 7 decembrie 2013 14:04:23
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#define MAX 510
#define INF 1000000000000000000
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int N, d[MAX];
long long m[MAX][MAX];
int main()
{
    int i, j, k;
    fin>> N;

    for( i = 0; i <= N; i++)
        fin>>d[i];
    for(i = 1; i <= N; i++)
        for(j = i + 2; j <= N; j++)
            m[i][j] = INF;
    for(i = 1; i <= N; i++)
        m[i][i] = 0;
    for(i = 1; i < N; i++)
        m[i][i+1] = d[i - 1] * d[i] * d[ i + 1];
    for(int l = 2; l < N; l++)
        for( i = 1; i <= N; i++)
        {
            j = i + l;

            for( k = i; k < j; k++)
                m[i][j] = min(m[i][j], m[i][k] + m[k+1][j] + d[i - 1] * d[k] * d[j]);

        }
    fout<<m[1][N];
    return 0;
}