Pagini recente » Cod sursa (job #2342688) | Cod sursa (job #2937017) | Cod sursa (job #997896) | Cod sursa (job #465793) | Cod sursa (job #771904)
Cod sursa(job #771904)
#include <stdio.h>
long long Optim[501][501];
int S[501], N;
int main()
{
int i, d, k;
long long min, cost;
FILE *in = fopen ("podm.in", "r");
FILE *out = fopen ("podm.out", "w");
fscanf (in, "%d", &N);
for (i = 0; i<= N; ++i) fscanf (in, "%d", &S[i]);
for(d = 1; d <= N-1; ++d)
for(i = 1; i <= N-d; ++i)
{
min = Optim[i][i] + Optim[i+1][i+d] + S[i-1] * S[i] * S[i+d];
for(k = 1; k < d; ++k)
{
cost = Optim[i][i+k] + Optim[i+k+1][i+d] + S[i-1] * S[i+k] * S[i+d];
if(cost < min) min = cost;
}
Optim[i][i+d] = min;
}
fprintf(out, "%lld\n", Optim[1][N]);
fclose(in);
fclose(out);
return 0;
}