Cod sursa(job #408579)

Utilizator al_flAlexandru Flavian al_fl Data 3 martie 2010 09:23:07
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
using namespace std;
#define NMax 10001
#define INF 0x3f3f3f3f
ifstream f("podm.in");
ofstream g("podm.out");
long M[NMax][NMax],d[NMax],n;
void pd()
{
    int nr,i,j,k,kmin;
    long min;
    for(nr=2;nr<=n;nr++)
    for(int i=1;i<=n-nr+1;i++)
    {j=i+nr-1;
    for(k=i,min=INF;k<j;k++)
        if(min>M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j])
        {
            min=M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j];
            kmin=k;
        }
        M[i][j]=min;M[j][i]=kmin;
    }
}
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>d[i];
    pd();
    g<<M[1][n];
    return 0;
}