Pagini recente » Cod sursa (job #2041607) | Cod sursa (job #1687188) | Cod sursa (job #1726835) | Cod sursa (job #3217287) | Cod sursa (job #1655658)
#include <cstdio>
#include <climits>
#include <limits>
using namespace std;
long long n;
long long d[550];
long long mat[550][550];
void citire()
{
scanf("%lld", &n);
for(int i = 0; i < n + 1; i++)
{
scanf("%lld", &d[i]);
}
}
void parcurgere()
{
long long minim = 1 << 64 - 1;
for(int i = 2; i <= n; i++)
{
for(int j = 0; j <= n - i; j++)
{
/// j + 1
/// i + j
minim = 1 << 64 - 1;
for(int k = j + 1; k < i + j; k++)
{
long long nr = mat[j + 1][k] + mat[k + 1][i + j] + d[j] * d[k] * d[i + j];
if(nr < minim)
{
minim = nr;
}
}
mat[j + 1][i + j] = minim;
}
}
printf("%lld", mat[1][n]);
}
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
citire();
parcurgere();
return 0;
}