Cod sursa(job #487391)

Utilizator GodiesVlad Voicu Godies Data 25 septembrie 2010 00:03:34
Problema Jocul Flip Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 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, n, h, m, x, r, sum, total_sum, max;
	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;
	for (h = 0; h <= DMAX; h++) {
		x = h;
		for (i = 0; i < n; i++) {
			r = 1;
			if ((x & (1 << i)) > 0) {
				r = -1;
			}
			total_sum = 0;
			for (k = 0; k < m; k++) {
				sum = 0; 
				a[i][k] = r*a[i][k];
				for (j = 0; j < n; j++) {
					sum += a[j][k];
				}
				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;
}