Cod sursa(job #487399)

Utilizator GodiesVlad Voicu Godies Data 25 septembrie 2010 01:25:11
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
#include <cstdlib>
#include <iostream>

#define NMAX 17
#define DMAX 65536

using namespace std;

int main()
{
	FILE *f, *g;
	f = fopen("flip.in", "rt");
	g = fopen("flip.out", "wt");
	int i, j, k, l, n, h, m, x, sum, total_sum, max, dmax;
	int a[NMAX][NMAX];
	fscanf (f, "%d%d", &n, &m);
	for (i = 0; i < n; i++)
		for (j = 0; j < m; j++)
			fscanf (f, "%d", &a[i][j]);
	max = -1;
	dmax = 1 << n;
	for (h = 0; h < dmax; h++) {
		x = h;
		for (i = 0; i < n; i++) {
			total_sum = 0;
			if ((x & (1 << i)) > 0) {
				for (k = 0; k < m; k++) {
					a[i][k] = -a[i][k];
				}
			}
		}
		for (j = 0; j < m; j++) {
			sum = 0;
			for (l = 0; l < n; l++) {
				sum += a[l][j];
			}
			if (sum < 0) {
				total_sum += -sum;
			}
			else
				total_sum += sum;
		}
		if (total_sum > max) {
			max = total_sum;
		} 
	}
	fprintf(g, "%d", max);
	fclose(f);
	fclose(g);
	return 0;
}