Cod sursa(job #690085)

Utilizator anca1243Popescu Anca anca1243 Data 25 februarie 2012 10:28:17
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
const int N=10001;
const int INF=1<<30;
long long d[N][N],a[N],n;
inline int min(int a,int b)
{
    if(a<b)
        return a;
    return b;
}
void inmultire()
{
    int i,j,k;
    for(i=n-1;i>=1;i--)
        for(j=i+1;j<=n;j++)
        {
            d[i][j]=INF;
            for(k=i;k<j;k++)
                d[i][j]=min(d[i][j],d[i][k]+d[k+1][j]+a[i]*a[k+1]*a[j+1]);
        }
    return;
}
/*void afisare()
{
    for(int i=1;i<=n+1;i++)
    {
        for(int j=1;j<=n+1;j++)
            cout<<d[i][j]<<"\t";
        cout<<"\n";
    }
}*/

int main()
{
    int i;
    in>>n;
    for(i=1;i<=n+1;i++)
        in>>a[i];
    inmultire();
    //afisare();
    out<<d[1][n];
    return 0;
}