Pagini recente » Cod sursa (job #1038889) | Cod sursa (job #2311465) | Cod sursa (job #77509) | Cod sursa (job #740644) | Cod sursa (job #408781)
Cod sursa(job #408781)
#include<cstdio>
using namespace std;
const long long N=512,FNI=10000,INF=FNI*FNI*FNI*FNI*FNI*FNI*FNI*FNI*FNI*FNI*FNI;
long long n,v[N],a[N][N];
void read()
{
scanf("%lld",&n);
for( int i=1 ; i<=n+1 ; ++i )
scanf("%lld",&v[i]);
}
inline long long mn(long long x,long long y)
{
return x<y ? x : y;
}
void solve()
{
int i,j,d;
for( d=1 ; d<n ; ++d )//d=diferenta j-i (o diag paralela cu cea princ are j-i=d constant)
for( i=1 ; i+d<=n ; ++i )
{
j = i+d;
a[i][j] = INF;
for( int k=i ; k<j ; ++k )
/*
if( a[i][j]>a[i][k] + a[k+1][j] + v[i]*v[k+1]*v[j+1] )
a[i][j]= a[i][k] + a[k+1][j] + v[i]*v[k+1]*v[j+1];
*/
a[i][j] = mn(a[i][j],a[i][k] + a[k+1][j] + v[i]*v[k+1]*v[j+1]);
}
//scrie();
printf("%lld",a[1][n]);
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
read();
solve();
return 0;
}