Cod sursa(job #191524)
#include <stdio.h>
int a[100][100];
int m, n;
int sign[100];
int sum;
void readData(void) {
FILE *f = fopen("flip.in", "rt");
fscanf(f, "%d %d", &m, &n);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
fscanf(f, "%d", &a[i][j]);
}
}
fclose(f);
}
void writeData(void) {
FILE *f = fopen("flip.out", "wt");
fprintf(f, "%d\n", sum);
fclose(f);
}
void flip() {
sum = 0;
for (int binary = 0; binary < (1 << n); binary++) {
int comboSum = 0;
for (int i = 0; i < m; i++) {
int rowSum = 0;
for (int j = 0; j < n; j++) {
rowSum += a[i][j] * ((binary & (1 << j)) ? -1 : 1);
}
comboSum += (rowSum > 0) ? rowSum : -rowSum;
}
if (comboSum > sum) {
sum = comboSum;
}
}
}
int main(void) {
readData();
flip();
writeData();
return 0;
}