Pagini recente » Cod sursa (job #2423112) | Cod sursa (job #1822044) | Cod sursa (job #1941467) | Cod sursa (job #2718112) | Cod sursa (job #690087)
Cod sursa(job #690087)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
const int N=10001;
const long long INF=1LL<<60;
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;
}