Cod sursa(job #276602)

Utilizator alex_damianDamian Alexandru alex_damian Data 11 martie 2009 11:30:11
Problema Jocul Flip Scor 40
Compilator c Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>

#define FIN "flip.in"
#define FOUT "flip.out"
#define MAXN 17

int change[MAXN * 2], a[MAXN][MAXN], n, m, S;

void back(int k) {
	int s = 0, i, j;
	if (k == n + m) {
		for (i = 0; i < n; i++)
			for (j = 0; j < m; j++)
				s += change[i] * change[n + j] * a[i][j];
		if (s > S) {
			S = s;
		}
	} else {
		change[k] = 1; back (k+1);
		change[k] = -1; back (k+1);
	}
}



int main () {
	int i, j;
	FILE *fin = fopen(FIN, "rt");
	FILE *fout = fopen(FOUT, "wt");
	fscanf(fin, "%d %d", &n, &m);
	for (i = 0; i < n; i++) for (j = 0; j < m; j++) fscanf(fin, "%d", &a[i][j]);
	for (i = 0; i < n + m; i++) change[i] = -1;
	back(0);
	fprintf(fout, "%d\n", S);
	fclose(fin);
	fclose(fout);
	return 0;
}