Cod sursa(job #594055)

Utilizator ELHoriaHoria Cretescu ELHoria Data 6 iunie 2011 00:07:49
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>

int n , m , D[16][16] , maxs , lmax;

static inline int max(int a,int b)
{
	return a > b ? a : b;
}

void backlinie(int k,int sum)
{
	if(k==n)
	{
		maxs = max(maxs,sum);
	}
	else
	{ int a ,b , c ,d ;
	a = b = 0;
		for(int j=0;j<m;++j) 
		a+=D[k][j] , b+=D[k][j]*-1; 
			backlinie(k+1,sum+a);
			backlinie(k+1,sum+b);
	}
}

void backcol(int k,int sum)
{
	if(k==n)
	{
		maxs = max(maxs,sum);
	}
	else
	{ int a ,b , c ,d ;
	a = b = 0;
		for(int j=0;j<n;++j) 
			 a+=D[j][k] , b+=D[j][k]*-1; 
			backcol(k+1,sum+a);
			backcol(k+1,sum+b);
	}
}



void read()
{
	freopen("flip.in","r",stdin);
	scanf("%d %d",&n,&m); lmax = max(m,n);
	for(int i=0;i<n;++i)
		for(int j=0;j<m;++j)
			scanf("%d",&D[i][j]);
}

void write()
{
	freopen("flip.out","w",stdout);
	printf("%d",maxs);
}

int main()
{
	read();
	backlinie(0,0);
	backcol(0,0);
	write();
}