Cod sursa(job #458025)

Utilizator costy_petrisorPetrisor Costy costy_petrisor Data 22 mai 2010 18:01:44
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <stdlib.h>

#define FILE_IN		"flip.in"
#define FILE_OUT		"flip.out"

#define COMS(coms, i) (((coms >> i) & 1) ? -1 : 1)

int n, m;
int table[16][16];

int doSum (int comsN)
{
	int sum = 0;
	int i, j;
	for (j = 0; j < m; ++j)
	{
		int s = 0;
		for (i = 0; i < n; ++i)
		{
			s += table[i][j] * COMS(comsN, i);
		}
		sum += (s > 0) ? (s) : (-s);
	}
	return sum;
}

int doSwitches ()
{
	int maxSum = 0xFFFFFFFF;
	int maxComsN = 1 << (n);
	int i, j;

	for (i = 0; i < maxComsN; ++i)
	{
		int sum = doSum(i);
		if (abs(sum) > maxSum)
			maxSum = abs(sum);
	}
	return maxSum;
}

int main()
{
	FILE* file;

	int i, j;

	file = fopen(FILE_IN, "r");
	fscanf(file, "%d %d", &n, &m);
	for (i = 0; i < n; ++i)
		for (j = 0; j < m; ++j)
		{
			fscanf(file, " %d", &(table[i][j]));//(int**)table + (((i * 16) + j) * sizeof(int)));
		}	
	fclose(file);

	file = fopen(FILE_OUT, "w");
	fprintf(stdout, "%d", doSwitches());
	fclose(file);
	return 0;
}