Cod sursa(job #1012648)

Utilizator Mastertrap21Danceanu Madalin Mastertrap21 Data 19 octombrie 2013 14:30:30
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
using namespace std;

#define N 17
long A[N][N];
short n, m, rowT[N], colT[N];
long long maxSum = 0;

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

void citire()
{	
	f>>n>>m;
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<m; j++)
		{
			f>>A[i][j];
		}
	}
}

void sumCheck()
{
	long long sum = 0;
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<m; j++)
		{
			sum += rowT[i] * colT[j] * A[i][j];
		}
	}
	if(sum > maxSum) maxSum = sum;
}

void colBT(int c)
{
	if(c == m)
	{
		sumCheck();
	}
	else
	{
		colT[c] = 1;
		colBT(c+1);
		colT[c] = -1;
		colBT(c+1);
	}
}

void rowBT(int c)
{
	if(c == n)
	{
		colBT(0);
	}
	else
	{
		rowT[c] = 1;
		rowBT(c+1);
		rowT[c] = -1;
		rowBT(c+1);
	}
}

void afisare()
{
	g<<maxSum;
}

int main()
{
	std::ifstream instead;
	using namespace std;
	using std::ifstream;
	citire();
	rowBT(0);
	afisare();
	f.close();
	g.close();
	return 0;
}