Pagini recente » Cod sursa (job #2370484) | Cod sursa (job #1904513) | Cod sursa (job #1809157) | Cod sursa (job #1696034) | Cod sursa (job #503039)
Cod sursa(job #503039)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 505
#define inf 100000000000000000LL
int n,p[nmax];
long long m[nmax][nmax];
long long mem(int i,int j)
{ int k; long long q;
if(m[i][j]<inf) return m[i][j];
if(i==j) m[i][j]=0;
else
{ for(k=i;k<j;k++)
{ q=mem(i,k)+mem(k+1,j)+(long long)p[i-1]*p[k]*p[j];
if(q<m[i][j]) m[i][j]=q;
}
}
return m[i][j];
}
int main(void)
{ int i,j;
ifstream fin("podm.in");
fin>>n;
for(i=0;i<=n;i++) fin>>p[i];
fin.close();
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) m[i][j]=inf;
ofstream fout("podm.out");
fout<<mem(1,n);
fout.close();
return 0;
}