Cod sursa(job #2477009)

Utilizator roberttrutaTruta Robert roberttruta Data 19 octombrie 2019 14:55:24
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;
int n,i,j,r,v[505];
long long d[505][505];
const long long inf=1000000000000000000;
int main()
{
    ifstream f("podm.in");
    ofstream g("podm.out");
///d[i][j]=costul minim de a inmulti matricea i cu matricea i+1...cu j.
    f>>n;
    for(i=1;i<=n+1;i++)
    f>>v[i];

    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    d[i][j]=inf;
    for(i=1;i<=n;i++)
    d[i][i]=0;
    for(i=1;i<n;i++)
    d[i][i+1]=v[i]*v[i+1]*v[i+2];

    for(r=2;r<n;r++)
    for(i=1;i+r<=n;i++)
    for(j=i;j<i+r;j++)
    if( (d[i][j]+d[j+1][i+r]+v[i]*v[j+1]*v[i+r+1])<d[i][i+r] )
        d[i][i+r]=d[i][j]+d[j+1][i+r]+v[i]*v[j+1]*v[i+r+1];

    g<<d[1][n];


    return 0;
}