Cod sursa(job #1654660)

Utilizator andreigasparoviciAndrei Gasparovici andreigasparovici Data 17 martie 2016 12:36:18
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <cstdio>
using namespace std;
int d[502],m[502][502],n;
void citire()
{
    scanf("%d ",&n);
    for(int i=0;i<2*n;i++)
    {
        scanf("%d ",d+i);
    }
}
void dinamica()
{

    for(int diag=1;diag<=n-1;diag++)
    {
        for(int i=1;i<=n-diag;i++)
        {
            int row,col;
            row=i;
            col=diag+i;
            if(row!=col){
                int minim=999999999;
                for(int k=row;k<col;k++)
                {
                    int x=m[row][k]+m[k+1][col]+d[row-1]*d[k]*d[col];
                    if(x<minim)
                        minim=x;
                }
                m[row][col]=minim;
            }
        }
    }
}
int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    citire();
    dinamica();
    printf("%d\n",m[1][n]);
    return 0;
}