Pagini recente » Cod sursa (job #110042) | Cod sursa (job #838373) | Cod sursa (job #1580721) | Cod sursa (job #3231880) | Cod sursa (job #1424032)
#include <stdio.h>
#define MAX_N 16
int a[MAX_N][MAX_N];
int main(void) {
FILE *f;
unsigned n, m;
unsigned maxSum;
f = fopen("flip.in", "r");
fscanf(f, "%u%u", &n, &m);
for (unsigned i = 0; i < n; i++) {
for (unsigned j = 0; j < m; j++) {
fscanf(f, "%d", &a[i][j]);
}
}
fclose(f);
maxSum = 0;
for (int back = (1 << m) - 1; back >= 0; back--) {
unsigned sumPattern = 0;
for (unsigned i = 0; i < n; i++) {
int sum = 0;
for (unsigned j = 0; j < m; j++) {
if (back & (1 << j)) {
sum += a[i][j];
} else {
sum -= a[i][j];
}
}
(sum >= 0) ? sumPattern += sum : sumPattern -= sum; // schimb semnul liniei in cazul in care este negativa
}
if (sumPattern > maxSum) {
maxSum = sumPattern;
}
}
f = fopen("flip.out", "w");
fprintf(f, "%u\n", maxSum);
fclose(f);
return 0;
}