Cod sursa(job #580565)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 13 aprilie 2011 11:16:05
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
#define NMAX 502

using namespace std;

unsigned long long nr[NMAX][NMAX];
int p[NMAX], n;

ifstream f("podm.in");
ofstream g("podm.out");

void Citeste()
{
    int i;
    f>>n;
    for (i=1; i<=n+1; ++i) f>>p[i];
}

void Solve()
{
    int d, i, j, k, mn, v;
    
    for (d=2; d<=n; ++d)
    {
	  for (i=1, j=d; j<=n; ++i, ++j)
	  {
		mn=nr[i+1][j]+p[i]*p[i+1]*p[j+1];
		for (k=i+1; k<j; ++k)
		{
		    v=nr[i][k]+nr[k+1][j]+p[i]*p[k+1]*p[j+1];
		    mn=min(mn, v);
		}
		nr[i][j]=mn;
	  }
    }
    g<<nr[1][n]<<"\n";
}

int main()
{
    Citeste();
    
    Solve();
    
    f.close();
    g.close();
    return 0;
}