Cod sursa(job #1125348)

Utilizator dn995Diaconu dn995 Data 26 februarie 2014 17:03:00
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream o("podm.out");
int n,v[501];
long a[501][501];
void functie()
{
    int l,i,j,k,q;
    for(l=2;l<=n;l++)
    {
        for(i=1;i<=n-l+1;i++)
        {
            j=i+l-1;
            a[i][j]=a[i][i]+a[i+1][j]+v[i]*v[i+1]*v[j+1];
            for(k=i;k<j;k++)
            {
                q=a[i][k]+a[k+1][j]+v[i]*v[k+1]*v[j+1];
                if(q<a[i][j])
                    {
                        a[i][j]=q;
                        a[n-i+1][n-j+1]=k;
                    }
            }
        }
    }
}
int main()
{
    int i,j;
    f>>n;
    for(i=1;i<=n+1;i++)
        f>>v[i];
    functie();
    o<<a[1][n];
    return 0;
}