Pagini recente » Cod sursa (job #3613) | Cod sursa (job #2624527) | Cod sursa (job #2845567) | Cod sursa (job #3212488) | Cod sursa (job #1655026)
#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 = INT_MAX;
for(int i = 2; i <= n; i++)
{
for(int j = 0; j <= n - i; j++)
{
/// j + 1
/// i + j
minim = INT_MAX;
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;
}