Cod sursa(job #802116)

Utilizator raulstoinStoin Raul raulstoin Data 25 octombrie 2012 21:03:44
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#define inf (1LL<<62)
#define LL long long
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
LL n,a[505][505],d[505];
int main()
{
    int i,j,k;
    f>>n;
    for(i=0;i<=n;i++)
        f>>d[i];
    for(i=1;i<n;i++)
        a[i][i+1]=d[i-1]*d[i]*d[i+1];
    for(int dif=2;dif<n;dif++)
    {
        for(i=1;i<=n-dif;i++)
        {
            j=i+dif;
            a[i][j]=inf;
            for(k=i;k<j;k++)
                a[i][j]=min(a[i][j],a[i][k]+a[k+1][j]+d[i-1]*d[k]*d[j]);
        }
    }
    g<<a[1][n]<<'\n';
    f.close();
    g.close();
    return 0;
}