Pagini recente » Cod sursa (job #2003687) | Cod sursa (job #2177627) | Cod sursa (job #2808867) | Cod sursa (job #2709648) | Cod sursa (job #1654728)
#include <cstdio>
#include <climits>
using namespace std;
int n;
int d[500];
int mat[500][500];
void citire()
{
scanf("%d", &n);
for(int i = 0; i < n + 1; i++)
{
scanf("%d", &d[i]);
}
}
void parcurgere()
{
long long minim = LONG_LONG_MAX;
for(int i = 2; i <= n; i++)
{
for(int j = 0; j <= n - i; j++)
{
/// j + 1
/// i + j
minim = LONG_LONG_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("%d", mat[1][n]);
}
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
citire();
parcurgere();
return 0;
}