Cod sursa(job #954194)

Utilizator sorin2kSorin Nutu sorin2k Data 28 mai 2013 17:18:32
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");
int a[17][17], b[17][17], v[17], n, m, i, j, sum, s, sol = -1;


void solve()
{
	sum = 0;
	for(i = 0; i < n; i++)
	{	
		for(j = 0; j < m; j++)
		{
			if(v[i] == 1)
				b[i][j] = -a[i][j];
			else
				b[i][j] = a[i][j];
			sum += b[i][j];
		}
	}
	for(i = 0; i < m; i++)
	{
		s = 0;
		for(j = 0; j < n; j++)
		{
			s = s + b[j][i];
		}
		sum -= s;
		s = (s > 0) ? s : 0 - s;
		sum += s;
	}
	if(sum > sol)
		sol = sum;
}

void back()
{
	int k = 0;
	while(k > -1)
	{
		if(k == n)
		{
			solve();
			k--;
		}
		else
		{
			if(v[k] == 1)
				k--;
			else
			{
				v[k]++;
				v[++k] = -1;
			}
		}
	}
}

int main()
{
	fin >> n >> m;
	for(i = 0; i < n; i++)
	{
		v[i] = -1;
		for(j = 0; j < m; j++)
			fin >> a[i][j];
	}
	back();
	fout << sol;
	return 0;
}