Cod sursa(job #957682)

Utilizator TwoOfDiamondsDaniel Alexandru Radu TwoOfDiamonds Data 5 iunie 2013 19:05:56
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;

int main()
{
	int table[18][18];
	int sign[18];
	int sum, max = -2000000, s, n, m;

	ifstream IN("flip.in");
	ofstream OUT("flip.out");

	IN >> n;
	IN >> m;

	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			IN >> table[i][j];

	for (int i = 0; i < 18; i++)
		sign[i] = 0;

	while (!sign[0])
	{
		sum = 0;

		int t = n;

		for (int i = 1; i <= m; i++)
		{
			s = 0;

			for (int j = 1; j <= n; j++)
			{
				if (sign[j])
					s += -table[j][i];
				else
					s += table[j][i];

			}
			
			if (s < -s) s = -s;
			sum += s;
		}

		if (max < sum) max = sum;

		while (t >= 0 && sign[t])
		{
			sign[t] = 0;
			t--;
		}

		sign[t++] = 1;

		while (t <= n)
			sign[t++] = 0;
	}

	OUT << max;
	return 0;
}