Cod sursa(job #1558943)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 29 decembrie 2015 20:07:55
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<cstdio>
#include<iostream>
using namespace std;
long long di[505][505],ve[505];
int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    int n,i,j,k,st,dr;
    long long x;
    cin>>n;
    n++;
    for(i=1;i<=n;i++)
    cin>>ve[i];
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    di[i][j]=-1;
    di[i][i+1]=0;
    }
    for(k=2;k<n;k++)
    for(i=n-k;i>=1;i--)
    {
        st=i;
        dr=i+k;
        for(j=st+1;j<dr;j++)
        {
        x=di[st][j]+di[j][dr]+ve[st]*ve[j]*ve[dr];
        if(di[st][dr]>x || di[st][dr]==-1)
        di[st][dr]=x;
        }
    }
    cout<<di[1][n]<<"\n";
    return 0;
}