Cod sursa(job #1795824)

Utilizator jason2013Andronache Riccardo jason2013 Data 2 noiembrie 2016 21:22:53
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include<bits/stdc++.h>
using namespace std;

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

const long long inf = LONG_LONG_MAX;
const long long maxN = 505;

long long n;
long long M[maxN][maxN];
long long v[maxN];

void citire()
{
    fin>>n;

    for(long long i = 0; i <= n; i++)
    {
        fin>>v[i];
    }
}

void c_matrix_multiplication()
{
    for(long long z = 1; z < n; z++)
    {
        long long i, j;

        i = 1;
        j = z + 1;

        while(j <= n)
        {
            long long minim = inf;

            for(long long k = i; k < j; k++)
            {
                long long tempo = M[i][k] + M[k + 1][j] + v[i - 1] * v[k] * v[j];

                if(tempo < minim)
                {
                    minim = tempo;
                }
            }

            M[i][j] = minim;

            i++;
            j++;
        }

    }
}

void afisare()
{
    fout<<M[1][n];
}

int main()
{

    citire();
    c_matrix_multiplication();
    afisare();


    return 0;
}