Pagini recente » Cod sursa (job #558893) | Cod sursa (job #1727872) | Cod sursa (job #1181154) | Cod sursa (job #1718024) | Cod sursa (job #380965)
Cod sursa(job #380965)
#include<cstdio>
const long long INF = 100000000000000000LL;//(long long)1<<62;
const long long N = 501;
long long nr[N][N];
long long n,a[N+1];
void citire()
{
scanf("%lld",&n);
for (int i = 1; i <= n+1; ++i)
scanf("%lld",&a[i]);
}
void initializare_dinamica()
{
for (int j = 1; j <= n; ++j)
nr[j][j] = 0;
}
void dinamica()
{
int j;
long long val_nr;
for (int d = 1; d <= n-1; ++d)
for (int i = 1; (j = i + d) <= n; ++i)
{
nr[i][j] = INF;
for (int k = i; k <= j-1; ++k)
{
val_nr = nr[i][k] + nr[k+1][j] + a[i] * a[k+1] * a[j+1];
if (val_nr < nr[i][j])
nr[i][j] = val_nr;
}
}
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
citire();
initializare_dinamica();
dinamica();
printf("%lld",nr[1][n]);
return 0;
}