Cod sursa(job #195788)

Utilizator andrei.ismailIsmail Andrei-Adnan andrei.ismail Data 21 iunie 2008 23:03:56
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>

#define MAX 16
#define INFTY 1000000000

int a[MAX][MAX];
int m, n;

int main(void) {
	FILE *fin, *fout;
	int i, j, flipx, sum, max_sum;

	fin = fopen("flip.in", "rt");
	fscanf(fin, "%d %d\n", &n, &m);
	for (i = 0; i < n; i++)
		for (j = 0; j < m; j++)
			fscanf(fin, "%d", &a[i][j]);
	fclose(fin);

	max_sum = -INFTY;
	for (flipx = 0; flipx < (1 << m); ++flipx) {
		sum = 0;
		for (i = 0; i < n; i++) {
			int col_sum = 0;
			for (j = 0; j < m; j++)
				if (flipx & (1 << j))
					col_sum -= a[i][j];
				else
					col_sum += a[i][j];
			if (col_sum < 0)
				sum -= col_sum;
			else
				sum += col_sum;
		}
		if (sum > max_sum)
			max_sum = sum;
	}

	fout = fopen("flip.out", "wt");
	fprintf(fout, "%d\n", max_sum);
	fclose(fout);

	return 0;
}