Cod sursa(job #52040)

Utilizator sir_icemasterGeorge Guraliuc sir_icemaster Data 17 aprilie 2007 17:46:57
Problema Jocul Flip Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#define NMAX 16

char switched[2*NMAX];
int t[NMAX][NMAX];
int n, m, s, smax;

void gen(int k) {
	if (k == 2*n) {
		int i, j;
		s = 0;
		for (i = 0; i < n; ++i)
			for (j = 0; j < m; ++j)
				if (switched[i] ^ switched[n+j])
					s -= t[i][j];
				else
					s += t[i][j];
		if (smax < s)
			smax = s;
	}
	else {
		switched[k] = 0, gen(k+1);
		switched[k] = 1, gen(k+1);
	}
}

int main() {
	FILE * fi = freopen("flip.in", "r", stdin);
	FILE * fo = freopen("flip.out", "w", stdout);
	int i, j;
	scanf("%d%d", &n, &m);
	for (i = 0; i < n; ++i)
		for (j = 0; j < m; ++j)
			scanf("%d", &t[i][j]);
	gen(0);
	printf("%d", smax);
	return 0;
}