Pagini recente » Cod sursa (job #761587) | Cod sursa (job #514865) | Cod sursa (job #1055034) | Cod sursa (job #1247572) | Cod sursa (job #1492394)
#include <stdio.h>
#include <limits.h>
#define Nadejde 501
#define ll long long
int N;
int val[Nadejde];
ll int d[Nadejde][Nadejde];
ll int MIN(ll int X, ll int Y) {
return (X < Y) ? X : Y;
}
int main(void) {
int i, j, k, q;
FILE *f = fopen("podm.in", "r");
fscanf(f, "%d", &N);
for (i = 0; i <= N; i++) {
fscanf(f, "%d", &val[i]);
}
fclose(f);
f = fopen("podm.out", "w");
for (q = 1 + 1; q <= N; q++) {
for (i = 1; i <= N - q + 1; i++) {
j = i + q - 1;
d[i][j] = LLONG_MAX;
for (k = i; k < j; k++) {
d[i][j] = MIN(d[i][j], d[i][k] + d[k + 1][j] + (1LL * val[i - 1] * val[k] * val[j]));
}
}
}
fprintf(f, "%lld\n", d[1][N]);
fclose(f);
/// Multumim Doamne!
puts("Doamne ajuta!");
return 0;
}