Cod sursa(job #583549)

Utilizator alinhAlin H alinh Data 20 aprilie 2011 19:56:44
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <iostream>

using namespace std;

fstream f;
int n,m;
int a[17][17];

int sl[17];
int sc[17];

int maxim = -99999999;

void suma()
{
	int sum = 0;
	for (int i=1; i<=n; i++)
		for (int j=1; j<=m; j++)
			if (sl[i] != sc[j])
				sum += -a[i][j];
			else
				sum += a[i][j];

	if (sum > maxim)
		maxim = sum;
}

void backcoloane(int p)
{
	for (int k=-1; k<=1; k=k + 2)
	{
		sc[p] = k;
		if (p == m)
			suma();
		else
			backcoloane(p+1);
	}
}

void backlinii(int p)
{
	for (int k=-1; k<=1; k=k+2)
	{
		sl[p] = k;
		if (p == n)
			backcoloane(1);
		else
			backlinii(p+1);
	}
}

int main()
{
	f.open("flip.in",ios::in);
	f >> n >> m;
	for (int i=1; i<=n; i++)
		for (int j=1; j<=m; j++)
			f >> a[i][j];
	f.close();
	backlinii(1);
	f.open("flip.out",ios::out);
	f << maxim;
	f.close();
	return 0;
}