Cod sursa(job #1214737)
Utilizator | Banu Denis Andrei DenisONIc | Data | 31 iulie 2014 11:51:50 |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.66 kb |
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
long n,i,j,j2,v[502],mat[502][502];
long minn(long st,long dr)
{
long i,min2=99999999;
for (i=st;i<dr;i++)
{
if (mat[st][i]+mat[i+1][dr]+v[st]*v[i+1]*v[dr+1]<min2)
min2=mat[st][i]+mat[i+1][dr]+v[st]*v[i+1]*v[dr+1];
}
return min2;
}
int main()
{
f>>n;
for (i=1;i<=n+1;i++)
f>>v[i];
for (i=1;i<=n;i++)
{
j2=0;
for (j=1+i;j<=n;j++)
{
j2++;
mat[j2][j]=minn(j-i,j);
}
}
g<<mat[1][n];
f.close();
g.close();
return 0;
}