Cod sursa(job #442304)

Utilizator loginLogin Iustin Anca login Data 14 aprilie 2010 08:38:05
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
# include <fstream>
using namespace std;
int n, m, a[20][32], x[20];
long long sol=-2000000000000LL;

void read ()
{
	ifstream fin ("flip.in");
	fin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			fin>>a[i][j];
}

void verif ()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			a[i][j]=x[i]*a[i][j];
	long long int s, sum=0;
	for(int j=1;j<=m;j++)
	{
		s=0;
		for(int i=1;i<=n;i++)
			s+=a[i][j];
		if (s<(-1)*s)
		{
			sum+=(-1)*s;
			for(int i=1;i<=n;i++)
				a[i][j]=-a[i][j];
		}
		else
			sum+=s;			
	}
	if (sum>sol)sol=sum;
}

void bk(int k)
{
	for(int i=0;i<2;++i)
	{
		if (i)x[k]=i;
		else x[k]=-1;
		if (k==n)
			verif();
		else
			bk(k+1);
	}
}

int main()
{
	read ();
	bk(1);
	ofstream fout ("flip.out");
	fout<<sol;
	return 0;
}