Cod sursa(job #610158)

Utilizator IgnitionMihai Moraru Ignition Data 25 august 2011 12:34:17
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#include <limits.h>

#define MN (16)

int N, M, n[MN][MN], X = LONG_MIN;
int row[MN];

void sol()
{
	int S = 0, s, i, j;
	for(j = 0; j < M; ++ j, S += s) {
		for(s = i = 0; i < N; ++ i)
			s += n[i][j]*row[i];
		s = s < 0? -s : s;
	}
	X = S > X? S : X;
}

void bkt(int k)
{
	if(k >= N)
		sol();
	else {
		row[k] = -1;
		bkt(k+1);
		row[k] = 1;
		bkt(k+1);
	}
}

int main()
{
	int i, j;

	freopen("flip.in", "r", stdin);
	scanf("%d %d", &N, &M);
	for(i = 0; i < N; ++ i)
		for(j = 0; j < M; ++ j)
			scanf("%d", &n[i][j]);
	fclose(stdin);

	bkt(0);

	freopen("flip.out", "w", stdout);
	printf("%d\n", X);
	fclose(stdout);

	return 0;
}