Cod sursa(job #780852)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 22 august 2012 12:46:12
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb

#include <cstdio>

int main (void)
{
	std::freopen("flip.in","r",stdin);
	std::freopen("flip.out","w",stdout);
	unsigned int n, m;
	std::scanf("%u%u",&n,&m);
	const unsigned int MAX_SIZE(16);
	signed int matrix [MAX_SIZE] [MAX_SIZE];
	unsigned int i(0), j;
	signed int max_sum(0);
	do
	{
		j = 0;
		do
		{
			std::scanf("%u",&matrix[i][j]);
			max_sum += matrix[i][j];
			++j;
		}
		while (j < m);
		++i;
	}
	while (i < n);
	std::fclose(stdin);
	unsigned int limit(1 << m), linie, coloana;
	signed int suma, s;
	for (i = 0 ; i < limit ; ++i)
	{
		suma = 0;
		for (linie = 0 ; linie < n ; ++linie)
		{
			for (s = coloana = 0 ; coloana < m ; ++coloana)
			{
				if (i & (1 << coloana))
					s -= matrix[linie][coloana];
				else
					s += matrix[linie][coloana];
			}
			suma += (s > -s ? s : -s);
		}
		if (max_sum < suma)
			max_sum = suma;
	}
	std::printf("%d\n",max_sum);
	std::fclose(stdout);
	return 0;
}