Pagini recente » Cod sursa (job #1648848) | Cod sursa (job #2984531) | Cod sursa (job #1218302) | Monitorul de evaluare | Cod sursa (job #380966)
Cod sursa(job #380966)
#include<cstdio>
const long long INF = (long long)1<<60;
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;
}