Cod sursa(job #1879284)

Utilizator loghin.alexandruLoghin Alexandru loghin.alexandru Data 14 februarie 2017 20:30:29
Problema Jocul Flip Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb

#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

#define MAX 17
#define MIN_INT -120000000;

int combinari[MAX] = {};
int matrix[MAX][MAX] = {};

unsigned int line, column;

long long answer = MIN_INT;


void checkIfSolution()
{
	long long sum = 0;
	for (unsigned int i = 0; i < line; i++)
	{
		long long partialSum = 0;
		for (unsigned int j = 0; j < column; j++)
		{
			(combinari[j]) ? partialSum += matrix[i][j] : partialSum -= matrix[i][j];
		}
		sum += max(partialSum, -partialSum);
	}
	answer = max(answer, sum);
}

void genComb(int k)
{
	for (auto i = 0; i <= 1; i++)
	{
		combinari[k] = i;
		if (k == (line - 1))
		{
			checkIfSolution();
		}
		else
		{
			genComb(k + 1);
		}
	}
}


int main()
{
	fin >> line >> column;
	for (unsigned int i = 0; i < line; i++)
	{
		for (unsigned int j = 0; j < column; j++)
		{
			fin >> matrix[i][j];
		}
	}
	genComb(0);
	fout << answer;
	return 0;

}