Cod sursa(job #1517874)

Utilizator cristiancCristian cristianc Data 4 noiembrie 2015 22:38:19
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
using namespace std;
short n, m, i, j, k, l;  long long sum = 0, s = 0;
short lin[16], col[16];  int a[16][16];
void bty(short jj)
{
	if (jj == m-1)
	{
		col[jj] = 1;  s = 0;
		for (short i = 0; i < n; i++)
			for (short j = 0; j < m; j++)
				s += a[i][j] * lin[i] * col[j];
		if (s > sum)  sum = s;
		col[jj] = -1;  s = 0;
		for (short i = 0; i < n; i++)
			for (short j = 0; j < m; j++)
				s += a[i][j] * lin[i] * col[j];
		if (s > sum)  sum = s;
	}
	else
	{
		col[jj] = 1;  bty(jj+1);
		col[jj] = -1; bty(jj+1);
	}
}
void btx(short ii)
{
	if (ii == n-1)
	{
		lin[ii] = 1;  bty(0);
		lin[ii] = -1; bty(0);
	}
	else
	{
		lin[ii] = 1;  btx(ii+1);
		lin[ii] = -1; btx(ii+1);
	}
}
int main()
{
	ifstream ii("flip.in");
	ofstream oo("flip.out");
	ii >> n >> m;
	for (i = 0; i < n; i++)
		for (j = 0; j < m; j++)
			ii >> a[i][j];
	btx(0);
	oo << sum;
}