Pagini recente » Cod sursa (job #1364831) | Cod sursa (job #1616414) | Cod sursa (job #2103315) | Cod sursa (job #769980) | Cod sursa (job #1537831)
#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; q < N; q++) {
for (i = 1; i <= N - q; i++) {
d[i][j = i + q] = 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);
/*
for (i = 0; i < N + 1; i++) {
for (j = 0; j < N + 1; j++) {
printf("%d ", d[i][j] == 0 ? 9999 : d[i][j]);
}
printf("\n");
}
*/
/// Multumim Doamne!
puts("Doamne ajuta!");
return 0;
}