Cod sursa(job #796465)

Utilizator googolplexeGoogol googolplexe Data 11 octombrie 2012 16:44:45
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>

using namespace std;

int matrix[16][16], lines = 0, columns = 0, maxSum = 0;

ifstream f("flip.in");
ofstream g("flip.out");

void read()
{
	int line, column;

	f >> lines >> columns;

	for(line = 0; line < lines; line++)
		for(column = 0; column < columns; column++)
			f >> matrix[line][column];

	f.close();
}

int sum()
{
	int line, column, linesSums[16] = {0}, sum = 0;

	for(line = 0; line < lines; line++)
		for(column = 0; column < columns; column++)
			linesSums[line] += matrix[line][column];

	for(line = 0; line < lines; line++)
		if(linesSums[line] > 0)
			sum += linesSums[line];
		else
			sum += (-1) * linesSums[line];

	return sum;
}

int bt(int column)
{
	if(column == columns)
	{
		int currentSum = sum();
		if(maxSum < currentSum)
			maxSum = currentSum;
	}
	else
	{
		bt(column + 1);

		for(int line = 0; line < lines; line++)
		{
			matrix[line][column] *= (-1);
		}
		bt(column + 1);
	}

	return maxSum;
}

int main()
{
	read();
	g<<bt(0);
	g.close();
	return 0;
}