Pagini recente » Cod sursa (job #294771) | Cod sursa (job #1333196) | Cod sursa (job #1712768) | Cod sursa (job #1948554) | Cod sursa (job #1455964)
#include <iostream>
#include <fstream>
const char IN[] = "flip.in", OUT[] = "flip.out";
const int NMAX = 16;
const int INF = 0x3f3f3f3f;
using namespace std;
int N, M;
int A[NMAX][NMAX];
int row[NMAX], col[NMAX];
int maxSum = -INF;
inline void read_data() {
freopen(IN, "r", stdin);
scanf("%d %d", &N, &M);
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
scanf("%d", &A[i][j]);
fclose(stdin);
}
int getsgn(int val, int rank) {
return (val & (0x1 << rank)) ? -1 : 1;
}
int main() {
read_data();
for (int sgn = 0; sgn < (1 << N); ++sgn) {
int s = 0;
for (int j = 0; j < M; ++j) {
int ss = 0;
for (int i = 0; i < N; ++i)
ss += A[i][j] * getsgn(sgn, i);
if (ss < 0) ss = -ss;
s += ss;
}
if (s > maxSum) maxSum = s;
}
fprintf(fopen(OUT, "w"), "%d\n", maxSum );
return 0;
}