Cod sursa(job #396119)

Utilizator toniobFMI - Barbalau Antonio toniob Data 14 februarie 2010 15:58:45
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>

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

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

void bkt(int p) {
	if (p == M + 1) {
		int sc, sl = 0;
		for (int i = 1; i <= N; ++i) {
			sc = 0;
			for (int j = 1; j <= N; ++j) {
				sc += v[i][j] * a[j];
			}
			sc = sc > -sc ? sc : -sc;
			sl += sc;
		}
		SMax = SMax > sl ? SMax : sl;
	}
	else {
		a[p] = 1;
		bkt(p + 1);
		a[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\n", SMax);
	
	return 0;
}