Pagini recente » Cod sursa (job #1724089) | Cod sursa (job #177654) | Cod sursa (job #2848196) | Cod sursa (job #2364500) | Cod sursa (job #1545353)
#include <cstdio>
using namespace std;
long long v[505], c[505][505];
int main()
{
FILE *in, *out;
in = fopen("podm.in", "r");
out = fopen("podm.out", "w");
int i, j, k, var, n;
long long min = 99999999999999;
fscanf(in, "%d", &n);
for(i = 0; i <= n; i++)
fscanf(in, "%lld", &v[i]);
//c[i][j] = nr minim de operatii din matrice
for(i = 1; i < n; i++)
c[i][i+1] = v[i-1] * v[i] * v[i+1];
for(j = 2; j < n; j++)
{
for(i = 1; i <= n-j+1; i++)
{
min = c[i][i] + c[i+1][i+j] + v[i-1] * v[i] * v[i+j];
for(k = i+1; k <= i+j-1; k++)
{
var = c[i][k] + c[k+1][i+j] + v[i-1] * v[k] * v[i+j];
if(var < min)
min = var;
}
c[i][i+j] = min;
}
}
fprintf(out, "%lld\n", c[1][n]);
return 0;
}