Pagini recente » Cod sursa (job #799869) | Cod sursa (job #1286613) | Cod sursa (job #15615) | Cod sursa (job #1409582) | Cod sursa (job #1289450)
#include <stdio.h>
#include <algorithm>
#define NMax 20
using namespace std;
const char IN[] = "flip.in", OUT[] = "flip.out";
int N, M, Rez;
int Mat[NMax][NMax];
void test() {
int suma = 0, sumb = 0, rez = 0;
for ( int j = 1; j <= M; ++ j ) {
suma = sumb = 0;
for ( int i = 1; i <= N; ++ i ) {
suma += Mat[i][j];
sumb -= Mat[i][j];
}
rez += max(suma, sumb);
}
Rez = max(Rez, rez);
}
void bkt( int line ) {
if ( line > N ) {
test();
return;
}
bkt(line + 1);
for ( int i = 1; i <= M; ++ i )
Mat[line][i] = - Mat[line][i];
bkt(line + 1);
for ( int i = 1; i <= M; ++ i )
Mat[line][i] = - Mat[line][i];
}
int main() {
freopen(IN, "r", stdin);
freopen(OUT, "w", stdout);
scanf("%d%d", &N, &M);
for ( int i = 1; i <= N; ++ i )
for ( int j = 1; j <= M; ++ j )
scanf("%d", &Mat[i][j]);
bkt(1);
printf("%d\n", Rez);
return 0;
}