Cod sursa(job #721058)

Utilizator toniobFMI - Barbalau Antonio toniob Data 23 martie 2012 10:57:48
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>

using namespace std;
const int NMax = 1 << 5;

int N, M, v[NMax][NMax], pm[NMax], SMax = -1;

void procesare () {
	int sl = 0;
	for (int i = 1; i <= N; ++i) {
		int sc = 0;
		for (int j = 1; j <= M; ++j) {
			sc += v[i][j] * pm[j];
		}
		sl += (sc > -sc ? sc : -sc);
	}
	SMax = SMax > sl ? SMax : sl;
}

void bkt (int p) {
	if (p == M + 1) {
		procesare ();
		return;
	}
	pm[p] = 1;
	bkt(p + 1);
	pm[p] = -1;
	bkt(p + 1);
}

int main () {
	freopen ("flip.in", "r", stdin);
	freopen ("flip.out", "w", stdout);
	
	scanf ("%d%d", &N, &M);
	for (int i = 1; i <= N; ++i ) {
		for (int j = 1; j <= M; ++j) {
			scanf ("%d", &v[i][j]);
		}
	}
	
	bkt(1);
	printf ("%d", SMax);
	
	return 0;
}